查看这些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
中时不起作用。我已经改变了函数的顺序,但我不知道它为什么不起作用。
答案 0 :(得分:2)
首先,我假设你试图返回一个布尔值,即元素的类是否等于buttonVal
。在这种情况下,您需要在括号中包围整个语句,如下所示:
return ($(element).attr('class') === buttonVal);
然而,还有另一个问题。在您的代码中,您有var buttonVal = $(this).text();
。因此,buttonVal
的值为div
或span
,具体取决于您点击的按钮。您提供的所有元素都没有类div
或span
,因此对于任何内容都不是这样。