【问题标题】:using foreach to access nodelist children element in Javascript使用 foreach 访问 Javascript 中的节点列表子元素
【发布时间】:2017-08-24 04:44:02
【问题描述】:

我正在尝试使用 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 开发人员工具中尝试此代码。控制台返回“未定义”。我可以通过明确指定列表位置来访问。

【问题讨论】:

    标签: javascript html foreach nodelist


    【解决方案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>

    无论如何,我不确定您这样做是否仅出于学习目的,但您正在使其复杂化。

    使用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>

    【讨论】:

    • 感谢您的回答。它是为了学习目的而完成的。我正在关注一个教程并最终分配了array.prototype。感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多