【发布时间】:2012-01-23 15:15:40
【问题描述】:
我有以下代码。
<ul>
<li class="prod" data-channels="3 4 6 8">product 1</li>
<li class="prod" data-channels="1">product 2</li>
<li class="prod" data-channels="2 8">product 3</li>
<li class="prod" data-channels="3 8">product 4</li>
<li class="prod" data-channels="3">product 5</li>
<li class="prod" data-channels="6">product 6</li>
</ul>
$("#slider").slider({
value: 0,
min: 0,
max: 24,
step: 1,
slide: function (event, ui) {
$("#amount").val(ui.value);
var filter = ui.value;
if (filter) {
$('li.prod').each(function (index) {
var channels = $(this).data('channels');
if (channels == filter) {
$(this).fadeTo("fast", 1);
}
else {
$(this).fadeTo("fast", 0.3);
}
});
}
}
});
$("#amount").val($("#slider").slider("value"));
我想要做的是将它发送给fadeto 数据channels 标签中包含某些值的产品。当数据通道具有单个值时,它可以正常工作。但现在客户希望它有多个值,如下所示。
所以我不能使用 == 运算符我需要做某种包含运算符,如下所示,但我碰上了砖墙。
var channels = $(this).data('channels');
if ($("li.prod:contains('"+channels+"')")) {
$(this).fadeTo("fast", 1);
}
else {
$(this).fadeTo("fast", 0.3);
}
但它不能正常工作。这是一个包含我的代码的 jsfiddle:http://jsfiddle.net/isimpledesign/CmJXm/3/
【问题讨论】:
-
您确实意识到
:contains作用于元素的内容,而不是data-*属性?
标签: jquery jquery-ui user-interface filter contains