我正在尝试使用foreach迭代NodeList。但是当我尝试使用以下代码访问时。
foreach = Array.prototype.forEach;
cls= document.getElementsByClassName('classname')
foreach.call(cls,function(some)
{
var ok = some.children;
foreac.call(ok,function(ss)
{
ss
});
});
我在chrome开发人员工具中尝试此代码。控制台返回'undefined'。我可以通过明确指定列表位置来访问。
答案 0 :(得分:1)
你得到undefined
因为基本上你没有对结果做任何事情。你可以退货或者退货将其记录到控制台。
var foreach = Array.prototype.forEach,
cls = document.getElementsByClassName('classname');
foreach.call(cls, function(some) {
var ok = some.children;
foreach.call(ok, function(ss) {
console.log(ss);
});
});

<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
&#13;
无论如何,我不确定你是否仅仅为了学习目的这样做,但是你使它复杂化了。
使用querySelectorAll
获取指定的元素并使用Array#forEach
进行迭代会更容易吗?
var elems = document.querySelectorAll('ul li');
elems.forEach(v => console.log(v));
&#13;
<ul class='classname'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
&#13;