jQuery变量attr无法正常工作

时间:2012-11-23 09:29:47

标签: jquery html

查看这些html和jQuery代码:

<button>div</button>
<button>span</button>
<div class="fill">fill</div>
<span class="fill">fill</span>
<div class="fill">fill</div>
<span class="fill">fill</span>
<div class="fill">fill</div>
<span class="fill">fill</span>

(function() {
    $('button').click(function() {
        var buttonVal = $(this).text();

        $.expr[':'].fillClass = function(element) 
            { return $(element).attr('class') === buttonVal);};

        $('div:fillClass').css('opacity', '.2');
    });
})(jQuery);

当我点击该按钮时,它会在buttonVal中保存按钮的值,但是当我将buttonVal放在return $(element).attr('class') === buttonVal中时不起作用。我已经改变了函数的顺序,但我不知道它为什么不起作用。

1 个答案:

答案 0 :(得分:2)

首先,我假设你试图返回一个布尔值,即元素的类是否等于buttonVal。在这种情况下,您需要在括号中包围整个语句,如下所示:

return ($(element).attr('class') === buttonVal);

然而,还有另一个问题。在您的代码中,您有var buttonVal = $(this).text();。因此,buttonVal的值为divspan,具体取决于您点击的按钮。您提供的所有元素都没有类divspan,因此对于任何内容都不是这样。