javascript for in循环多了一次 这是什么原理?
<tableclass="content"border="1"><tbodyid="time_day"><tr><th></th><th></th><th></th><t...
<table class="content" border="1">
<tbody id="time_day">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tbody>
</table>
<script>
var th = document.getElementById('time_day').getElementsByTagName('th');
for (var i in th) {alert(i); }
</script>
结果是 0 1 2 3 4 5 6 item namedItem length 。。多了3个这玩意。 展开
<tbody id="time_day">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tbody>
</table>
<script>
var th = document.getElementById('time_day').getElementsByTagName('th');
for (var i in th) {alert(i); }
</script>
结果是 0 1 2 3 4 5 6 item namedItem length 。。多了3个这玩意。 展开
1个回答
2015-06-15
展开全部
var th = document.getElementById('time_day').getElementsByTagName('th');
for (var i in th) {alert(i); }
你循环的是你获取的th一个DOM元素集,for in用来循环对象的所有属性,dom元素集包含了你上面输出的属性。
如果你只要循环dom对象的话,可以用for循环
for (var i =0;;i<th.length;i++) {alert(i); }
for (var i in th) {alert(i); }
你循环的是你获取的th一个DOM元素集,for in用来循环对象的所有属性,dom元素集包含了你上面输出的属性。
如果你只要循环dom对象的话,可以用for循环
for (var i =0;;i<th.length;i++) {alert(i); }
追问
大神 。那能否说一下什么情况下用 for in才用呢?
追答
for in用的地方很多,可以循环输出数组,可以用来枚举json对象
var arr = [1,2,3];
fot(var i in arr){var s = i +"->" + arr[i];console.log(s);}
var person = {'name':'hello','age':12};
for(var x in person){var s = "key:"+x+" "+"val:" + person[x],console.log(s);}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询