使用foreach访问Javascript中的nodelist子元素

时间:2017-03-30 10:11:05

标签: javascript html foreach nodelist

我正在尝试使用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'。我可以通过明确指定列表位置来访问。

1 个答案:

答案 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;
&#13;
&#13;

无论如何,我不确定你是否仅仅为了学习目的这样做,但是你使它复杂化了。

使用querySelectorAll获取指定的元素并使用Array#forEach进行迭代会更容易吗?

&#13;
&#13;
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;
&#13;
&#13;