使用 foreach 访问 Javascript 中的节点列表子元素

using foreach to access nodelist children element in Javascript

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

你得到 undefined 因为基本上你没有对结果做任何事情。您可以 return 它或例如将其记录到控制台。

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>

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

querySelectorAll 获取指定元素并用 Array#forEach 遍历它不是更容易吗?

var elems = document.querySelectorAll('ul li');
    elems.forEach(v => console.log(v));
<ul class='classname'>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>