为什么我的这个js代码无效啊?
<!DOCTYPEhtml><html><headlang="en"><metacharset="UTF-8"><title>test02</title><scriptt...
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>test02</title>
<script type="text/javascript">
var x = document.getElementById("kk").getElementsByTagName("li");
var k = x.length;
for(var i=1; i<=k; i++){
document.write(x[i]);
}
</script>
</head>
<body>
<div id="kk">
<ul>
<li id="ls1">a</li>
<li id="ls2">b</li>
<li id="ls3">c</li>
<li id="ls4">d</li>
<li id="ls5">e</li>
<li id="ls6">f</li>
<li id="ls7">g</li>
<li id="ls8">h</li>
</ul>
</div>
</body>
</html> 展开
<html>
<head lang="en">
<meta charset="UTF-8">
<title>test02</title>
<script type="text/javascript">
var x = document.getElementById("kk").getElementsByTagName("li");
var k = x.length;
for(var i=1; i<=k; i++){
document.write(x[i]);
}
</script>
</head>
<body>
<div id="kk">
<ul>
<li id="ls1">a</li>
<li id="ls2">b</li>
<li id="ls3">c</li>
<li id="ls4">d</li>
<li id="ls5">e</li>
<li id="ls6">f</li>
<li id="ls7">g</li>
<li id="ls8">h</li>
</ul>
</div>
</body>
</html> 展开
展开全部
写在head的script加上:
window.onload = function(){
// 这里再写代码
};
PS:这样就不要使用document.write()了,因为文档流关闭了,再使用这个会重新绘制页面,也就是覆盖原先的内容了
window.onload = function(){
// 这里再写代码
};
PS:这样就不要使用document.write()了,因为文档流关闭了,再使用这个会重新绘制页面,也就是覆盖原先的内容了
追问
非常感谢,我明白了,能在请教你一个问题吗,有的代码要写在window.onload里面而有的又不需要,这是为什么啊?就像下面这个代码就没写,连function都没写也能执行呀?
cars=[a","b","c","d"];
for (var i=0;i");
}
追答
假设你的 js代码 写在body结构之前,
就说明body结构还没有加载但是js已经加载了,
这时候,如果你的js里面涉及到操作DOM(也就是body里面的标签),
就会找不到,(因为body还没加载),
这时候就需要加上window.onload
你提问的代码是涉及body里面节点查找的,所以需要加,
你追问的代码没有涉及body节点,所以不需要加,
并且,像这种document.write() 不能写在window.onload里面,
因为window.onload执行的时候文档流就关闭了,再使用document.write()就重绘页面,也就是之前说的覆盖了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询