1

看看这些 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。我已经更改了函数的顺序,但我不知道为什么它不起作用。

4

1 回答 1

2

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

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

但是,还有另一个问题。在您的代码中,您有var buttonVal = $(this).text();. 因此,buttonVal将具有值divspan取决于您单击了哪个按钮。您给出的所有元素都没有这个类divspan因此它对任何东西都不是真的。

于 2012-11-23T09:31:13.373 回答