为什么in循环显示未定义的值

时间:2017-07-16 20:45:36

标签: javascript undefined console.log for-in-loop

我无法理解这个for-in循环如何在JavaScript中显示未定义的值,但是在循环中,first的长度是3.所以,为什么这么多未定义的值。

<div class="tab-menu">
    <ul>
        <li id="first">first item</li>
        <li id="second">second item</li>
        <li id="third">third item</li>
    </ul>
</div>

和循环 -

var first = document.querySelectorAll(".tab-menu ul li");
var f;
for (var i in first) {
    f = first[i].innerHTML;
    console.log(f);
}

它会在控制台中给出 -

"first item"
"second item"
"third item"
undefined
undefined
undefined
undefined
undefined
undefined

2 个答案:

答案 0 :(得分:2)

您可以使用forEach

var first = document.querySelectorAll(".tab-menu ul li")

first.forEach(function(e) {
  var f = e.innerHTML
  console.log(f)
})

答案 1 :(得分:-1)

你不应该在数组中使用for..in。试试......:

var first = document.querySelectorAll(".tab-menu ul li");
var f;
for(var el of first){
  f = el.innerHTML;
  console.log(f);
}