jquery .css / .attr / .addClass无法处理span标记

时间:2013-01-14 12:11:28

标签: javascript jquery html css

我正在尝试使用jquery设置span的背景颜色。我已经使用了标题中的所有函数,并且都给了我一个错误:

  

SCRIPT438:对象不支持属性或方法'css'/'attr'/'addClass'

知道如何解决这个问题吗?我想要的只是改变bg颜色,但是如果我可以设置类,我更喜欢。

代码:

var liList = ul.find('li span');
        $.each(liList, function(index, value){
            if(value.innerText == currPage){
                value.css('background-color', '#D94A38');
            }
        });

3 个答案:

答案 0 :(得分:7)

each()函数为您提供DOM对象而不是jQuery对象

更改为

$(value).css('background-color', '#D94A38');

您的代码将是

var liList = ul.find('li span');
    $.each(liList, function(index, value){
        if(value.innerText == currPage){
            $(value).css('background-color', '#D94A38');
        }
});

答案 1 :(得分:6)

value不是jQuery对象(它是一个DOM对象)。

此:

value.css('background-color', '#D94A38');

应该是:

$(value).css('background-color', '#D94A38');

查看.each() docs以获取更多信息。

答案 2 :(得分:0)

我认为如果用$(值)替换值,你的问题就会解决