我在html
中有一个列表,如下所示:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>...</li>
</ul>
现在,我使用此jquery为每个第二行添加了背景颜色:
$("ul li").each(function(index) {
if (index % 2 == 0) {
$(this).addClass("second-line");
}
});
但是,每个列表项都可以过滤到仅查看当前登录的用户。因此,如果我要过滤列表,则会隐藏一些行。但是在对列表进行过滤后,jQuery
使每个第二行混乱。
我该如何做到这一点?
我试过了:
$(".button").click(function() {
$("ul li").each(function(index) {
var uid = $(this).attr("data-uid");
var tuid = $(this).attr("data-tuid");
if (uid != tuid) {
$(this).hide(500);
}
});
$("ul li").each(function(index) {
if (index % 2 != 0) {
$(this).removeClass("second-line");
}
});
});
但没有成功。
答案 0 :(得分:0)
您可以使用$( "ul li:nth-child(2)" ).addClass("second-line");
作为第二个元素。
答案 1 :(得分:0)
你应该尝试:奇数选择器。使用此选项,您可以选择所有奇数项目(= 2nd,4th,...)。更多信息:https://api.jquery.com/odd-selector/
答案 2 :(得分:0)
你可以用css制作它。
像:
ul:nth-child(even){
background-color: #00ffff;
}
答案 3 :(得分:0)
答案 4 :(得分:0)
希望它会帮助你
ul li:nth-child(even) {
color: red;
}
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>