Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
在jQuery中从DOM中查找偶数值li_Jquery_Html - Fatal编程技术网

在jQuery中从DOM中查找偶数值li

在jQuery中从DOM中查找偶数值li,jquery,html,Jquery,Html,我有一个大教堂 <div class="first"> <ol> <li>E</li> <li>F</li><!--Red Background--> <li>G</li> <li>H</li><!--Red Background--> <li>E</li>

我有一个大教堂

<div class="first">
    <ol>
      <li>E</li>
      <li>F</li><!--Red Background-->
      <li>G</li>
      <li>H</li><!--Red Background-->
      <li>E</li>
      <li>F</li><!--Red Background-->
      <li>G</li>
      <li>H</li><!--Red Background-->
      <li>E</li>
      <li>F</li><!--Red Background-->
      <li>G</li>
      <li>H</li><!--Red Background-->
    </ol>
</div>

  • E
  • F
  • G
  • H
  • E
  • F
  • G
  • H
  • E
  • F
  • G
  • H
  • 我选择了偶数李,表示第二,第四

    所以我就这样写

      var count = jQuery(".first ol li").size();
      for (var i=1; i<=count; i++ ){
        if(i%2 == 0){
          console.log(i);
          jQuery(".first ol:last li:nth-child(2) ").css("background", "red");
        }
      }
    
    var count=jQuery(“.first ol li”).size();
    对于(var i=1;i
    是的,我的意思是!因为元素是
    0
    索引的,
    2
    4
    等都是奇数

    如果您关心性能,则可以更快地使用
    过滤器

    var evenLis = $(".first li").filter(":odd");
    
    为什么速度更快?jQuery文档清楚地说明了这一点:

    因为:odd是jQuery扩展,不是CSS的一部分 规范,使用:odd的查询不能利用 本机DOM querySelectorAll()提供的性能提升 方法。使用时达到最佳性能:奇数选择 元素,首先使用纯CSS选择器选择元素,然后 use.filter(“:奇数”)


    您需要第n个子V值成为公式。而不是2放入2n:

    jQuery(".first ol:last li:nth-child(2n) ").css("background", "red");
    

    刚好
    :奇数

    jQuery(".first ol:last :odd").css("background", "red");
    
    也许
    ol:last
    也是redunadnt。取决于您的DOM

    为什么不这样做呢

    jQuery(".first ol li:nth-child(even)".css("background", "red");
    

    这同样有效:jQuery(“.first ol:last li:odd”).css(“background”,“red”);“it give some error”询问技术问题101:什么错误?请注意,除非您必须支持IE8和更早版本,否则您可以使用css:
    。first ol li:nth child(偶数){background color:red;}
    ,因为
    :odd
    不是CSS规范的一部分,它必须调用Sizzle(而不是使用
    querySelectorAll
    )。我已经将文档中的相关部分复制到了答案中。“是的,我的意思是
    :odd
    ”更好的是,使用(
    第n个子项(偶数)
    )与嘶嘶声特定的
    :奇数的
    。那样的话,如果jQuery可以遵从
    querySelectorAll
    ,它就会(而且它与实际的CSS选择器是
    偶数的,因为CSS与jQuery不同,是从1开始的。)+1用于使用实际的CSS选择器,因此如果
    querySelectorAll
    可以,jQuery不必做这些工作。
    jQuery(".first ol li:nth-child(even)".css("background", "red");