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