我有一个列表,我正在检查列表项是否有两个特定的类。如果是,我想将该列表项的背景更改为蓝色。但是我的代码似乎不起作用。如何定位特定列表项?警报工作正常,只是颜色没有。
if (($("#all-colls-list li:contains(" + itemName + ")").hasClass("groupAdded")) && ($("#all-colls-list li:contains(" + itemName + ")").hasClass("selAdded")) ) {
$(this).css("background-color", "blue");
alert("has both classes");
}
答案 0 :(得分:2)
使用class selectors代替hasClass(),您可以通过单个选择器实现所需的目标,并获得对要修改的元素的引用:
$("#all-colls-list li:contains(" + itemName + ").groupAdded.selAdded")
.css("background-color", "blue");
答案 1 :(得分:0)
$("#all-colls-list li:contains(" + itemName + ")").each(function(){
if ($(this).hasClass("groupAdded") && $(this).hasClass("selAdded")) {
$(this).css("background-color", "blue");
}
})
答案 2 :(得分:0)
$(this)
可能未定义,因为您直接在if中访问该元素。再次在。css
函数中调用所有选择器可以解决您的问题
if (($("#all-colls-list li:contains(" + itemName + ")").hasClass("groupAdded")) && ($("#all-colls-list li:contains(" + itemName + ")").hasClass("selAdded")) ) {
$("#all-colls-list li:contains(" + itemName + ")").css("background-color", "blue");
alert("has both classes");
}