87,907
社区成员
发帖
与我相关
我的任务
分享
<body>
<form></form>
<form></form>
<form></form>
<img/>
<img/>
<img/>
<a href="#"></a>
<a href=""/>
</body>
<script type="text/javascript">
var nodeList = document.all;
for(var i in nodeList){
document.write(nodeList);
}
</script>
[code=javascript]
<body>
<form></form>
<form></form>
<form></form>
<img/>
<img/>
<img/>
<a href="#"></a>
<a href=""/>
</body>
<script type="text/javascript">
var nodeList = document.all;
for(var i = 0; i < nodeList.length; i++){
document.write(nodeList);
}
</script>
var nodeList = document.all;
for(var i in nodeList){
console.log(i+"="+nodeList[i]);
}
for(var i = 0; i < nodeList.length; i++){
console.log(i+"="+nodeList[i]);
}
你确定,你的代码中,可以执行到想要的?
而不是像这样?
for in的话,会把这个类数组以对象的形式输出,所以会包含一些方法,比如这里我写的代码的输出方式中,for in输出就会有length属性的输出。
for循环输出会只会输出其中的数组部分,向length属性,就不会被输出。<form></form>
<form></form>
<form></form>
<img/>
<img/>
<img/>
<a href="#"></a>
<a href=""></a>
</body>
<script type="text/javascript">
var s = '';
var nodeList = document.all;
for(var i in nodeList){
s += i + ':' + nodeList[i];
if(typeof(nodeList[i]) == 'object') s += '[' + nodeList[i].nodeName + ']';
s += '<br>';
}
document.write(s);
</script>
length:13
0:[object][HTML]
1:[object][HEAD]
2:[object][TITLE]
ms__id31:[object][FORM]
ms__id32:[object][FORM]
ms__id33:[object][FORM]
6:[object][BODY]
7:[object][IMG]
8:[object][IMG]
9:[object][IMG]
10:http://localhost/ide_tmp.php#[A]
11:http://localhost/[A]
12:[object][SCRIPT]