jquery中的目标列表项

时间:2012-07-31 10:41:54

标签: javascript jquery list

我有一个列表,我正在检查列表项是否有两个特定的类。如果是,我想将该列表项的背景更改为蓝色。但是我的代码似乎不起作用。如何定位特定列表项?警报工作正常,只是颜色没有。

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

3 个答案:

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