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

时间:2012-02-02 14:31:47

标签: 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>
      <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>

我选择了偶数li,意思是第二,第四......

所以我这样写

  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");
    }
  }

但它会给出一些错误。它可以被选中。如何选择PLZ帮助

4 个答案:

答案 0 :(得分:4)

var evenLis = $(".first li:odd");

是的,我的意思是:odd由于元素被0编入索引,24等是奇数。

如果您关心表现,可以更快地使用filter

var evenLis = $(".first li").filter(":odd");

为什么这会更快? jQuery文档清楚地说明了这一点:

  

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

答案 1 :(得分:2)

为什么不这样做?

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

答案 2 :(得分:1)

只需:odd ...

jQuery(".first ol:last :odd").css("background", "red");

也许ol:last也是多余的。取决于你的DOM

答案 3 :(得分:0)

您需要将nth-child值作为公式。而不是2放2n:

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