我有一个数组
var arr = [2,5,8,11,14,17,....];
使用此数组我们必须为li元素应用css背景
HTML:
<ul>
<li>testing</li>
<li>testing</li> // -->2nd li be green
<li>testing</li>
<li>testing</li>
<li>testing</li> // -->5th li be green
<li>testing</li>
<li>testing</li>
<li>testing</li> // -->8th li green like this
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
</ul>
我试过
ul li:nth-child(2n + 2){
color: green;
}
任何帮助???
答案 0 :(得分:5)
没有javascript
li:nth-child(3n + 2) {
color: green;
}
&#13;
<ul>
<li>testing</li>
<li>testing</li>
<!-- 2nd li be green -->
<li>testing</li>
<li>testing</li>
<li>testing</li>
<!-- 5th li be green -->
<li>testing</li>
<li>testing</li>
<li>testing</li>
<!-- 8th li be green -->
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
</ul>
&#13;
答案 1 :(得分:3)
使用JavaScript可以做到这一点。
var arr = [2, 5, 8, 11, 14, 17];
var li = document.getElementsByTagName('li');
for (i = 0; i < li.length; i++) {
li[i].style.color = arr.indexOf(i + 1) > -1 ? 'green' : 'black';
}
<ul>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
</ul>
或单独使用CSS。
li:nth-child(3n - 1) {
color: green;
}
<ul>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
<li>testing</li>
</ul>
答案 2 :(得分:2)
您可以使用Array.forEach
和$.eq
arr.forEach(function(num){
$('ul li').eq(num - 1).css('backgroundColor', 'green');
});
您也可以使用此代替eq
$('ul li:nth-child('+ num + ')').css('backgroundColor', 'green');
同样@Phylogenesis说,你可以使用
li:nth-child(3n+2) {
background: green;
}
答案 3 :(得分:0)
li:nth-child(2) {
background: #ff0000;
}
li:nth-child(3n+2) {
background: #ff0000;
}
使用公式(an + b
)。说明:a
表示周期大小,n
是计数器(从0开始),b
是偏移值。
在这里,我们为索引为3的倍数的所有li
元素指定背景颜色: