Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以使用带有节点列表的For循环吗?_Javascript_Html_Nodelist - Fatal编程技术网

Javascript 我可以使用带有节点列表的For循环吗?

Javascript 我可以使用带有节点列表的For循环吗?,javascript,html,nodelist,Javascript,Html,Nodelist,基本上,我有一些HTML代码,这是一个树,我要遍历它的节点列表,并将某些类分配给节点(如果它们有子节点),下面是一个片段: <li id='test' class="parentNode"> <button class="customer-btn button"><a href='#'>Customer 6</a></button> <ul> <li> <a href

基本上,我有一些HTML代码,这是一个树,我要遍历它的节点列表,并将某些
分配给节点(如果它们有子节点),下面是一个片段:

<li id='test' class="parentNode">
  <button class="customer-btn button"><a href='#'>Customer 6</a></button>
    <ul>
      <li>
        <a href='#'>Customer A</a>
      </li>
    </ul>
  </li>
  <li class="parentNode">
    <button class="customer-btn button"><a href='#'>Customer 7</a></button>
    <ul>
      <li>
      <a href='#'> Customer A</a>
      </li>
    </ul>
  </li>
  • 这是我的Javascript:

    parent_list = document.getElementsByTagName("LI");
      var i;
      $(document).ready(function() {
        for (i=0; i < parent_list.length; i++){
            children = $(i).find('LI');
            document.getElementById('check').innerHTML = children;
        }
        });
    
    parent_list=document.getElementsByTagName(“LI”);
    var i;
    $(文档).ready(函数(){
    对于(i=0;i
    对于循环,我返回的
    [object object]
    ,最好的方法是什么?


    您可以对任何内容使用for循环,但您的代码不正确…将子元素分配给innerHTML不是兼容的分配,在循环中执行此操作只会导致元素“check”被分配多次,而不是添加

    如果您使用的是jQuery,请使用:

        $('#check').append(children);
    

    因为您使用的是jQuery,所以不需要for循环

    $('li').each(function(index, element){
        if($(element).children().length > 0){
            $(element).addClass('myClass')
        }
    })
    

    您不需要jQuery,它只会降低脚本速度并添加不必要的依赖项。要回答您的问题“我可以将for循环与节点列表一起使用吗?”:可以,因为节点列表具有
    length
    属性,可以像数组一样索引。您的答案不符合OP的标准:如果节点有子节点,则将某些类指定给节点“”请改为考虑此样式规则“根据你的链接,CSS规则基本上没有浏览器支持,所以应该考虑多大程度的CSS规则?谢谢,这应该可以很好地工作,至少我离它不远了。”。而且,CSS功能将是一个上帝-send@squint因为这个答案在将来仍然会打开,而且看起来像是
    :has()
    将被添加到规范中,最终我希望我的答案是未来的证明!:D“…最终将添加到规范中”最好祈祷好运
        $('#check').append(children);
    
    $('li').each(function(index, element){
        if($(element).children().length > 0){
            $(element).addClass('myClass')
        }
    })