javascript – 为什么document.getElementById(“id”)它不起作用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么document.getElementById(“id”)它不起作用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4084字,纯文字阅读大概需要6分钟。
内容图文
![javascript – 为什么document.getElementById(“id”)它不起作用?](/upload/InfoBanner/zyjiaocheng/799/a8b52e132f88459f87c878d8867a6f5e.jpg)
我有以下代码(使用谷歌地图API V3绘制地图):
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% ; width:100%;}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
var previousPosition = null;
function initialize() {
map = new google.maps.Map(document.getElementById("map_canvas"), {
zoom: 19,
center: new google.maps.LatLng(48.858565, 2.347198),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
if (navigator.geolocation)
var watchId = navigator.geolocation.watchPosition(successCallback, null, {enableHighAccuracy:true});
else
alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5");
function successCallback(position){
map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
var marker = new google.maps.Marker({
position: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
map: map
});
if (previousPosition){
var newLineCoordinates = [
new google.maps.LatLng(previousPosition.coords.latitude, previousPosition.coords.longitude),
new google.maps.LatLng(position.coords.latitude, position.coords.longitude)];
var newLine = new google.maps.Polyline({
path: newLineCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
newLine.setMap(map);
}
previousPosition = position;
};
</script>
</head>
<body onl oad="initialize()">
<div id="map_canvas"></div>
</body>
</html>
它工作得很好(你可以测试它),但当我把:
<div id="a">
<div id="map_canvas"></div>
</div>
代替:
<div id="map_canvas"></div>
它不起作用了…
为什么它在第二个版本中不起作用?
PS:我刚刚给出了一个代表我真实代码的简单代码(只是让你更容易理解)……
编辑:
我真的不明白,我认为这是选择者的问题……正如迈克尔哈伦所说.
我尝试在我的代码中执行此操作但是当我单击“单击我”时它不起作用…
<!DOCTYPE html>
<html>
<head>
<style>
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
/*
#content,#right = #a,#map_canvas{..
*/
#content,#right { width:70%; height: 100%;margin-left:2%; box-shadow: 0px 5px 5px 5px #aaa; }
</style>
<title>Géolocalisation restreinte</title>
<%@include file="includes/head.html" %>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
function drawMap(){
var locTunisie= new google.maps.LatLng(33.858565, 10.347198);
map = new google.maps.Map(document.getElementById("right"), {
zoom: 6,
center:locTunisie,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
</script>
</head>
<body>
<!-- iclure le header-->
<%@include file="includes/header.html" %>
<!-- fin inclure -->
<div id="notification"><!-- zone de notification -->
</div>
<!-- Le contenu -->
<div id="content">
<form name="f">
<!-- draw the map Here -->
<div id="right">
</div>
<div id="left">
<a onclick="drawMap()">Click Here</a>
<input type="date" placeholder="Date debut jj-mm-aaaa" name="dateDeb" id="dateDeb">→<input type="date"placeholder="Date Fin jj-mm-aaaa" name="dateFin"id="dateFin">
<br/>
<br/>
<div class="scrollbar-b">
<table class="newspaper-a" summary="">
<caption>Liste des Automobile en lignes</caption>
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Matriculation</th>
<th scope="col">Marque</th>
<th scope="col">Model</th>
</tr>
</thead>
<tbody id="onLine">
</tbody>
</table>
</div> <br/><br/>
<div class="scrollbar-b">
<table class="newspaper-a" summary="">
<caption>Liste des Automobile hors lignes</caption>
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Matriculation</th>
<th scope="col">Marque</th>
<th scope="col">Model</th>
</tr>
</thead>
<tbody id="offline">
</tbody>
</table>
</div>
</div>
</form>
</div>
<!-- Fin contenu -->
<!-- iclure le footer-->
<%@include file="includes/footer.html" %>
<!-- fin iclure-->
</body>
</html>
解决方法:
问题是100%大小的地图容器最初被窗口作为根元素限制.但是当你将它嵌套在另一个div中时,它现在被那个div(它小得多)(即0)所限制.
你需要使外部div更大:
#a, #map_canvas { height: 100% ; width:100%;}
^^^
内容总结
以上是互联网集市为您收集整理的javascript – 为什么document.getElementById(“id”)它不起作用?全部内容,希望文章能够帮你解决javascript – 为什么document.getElementById(“id”)它不起作用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。