我想根据属性数据长度过滤一些文本。例如,如果滑块在值15和20之间,则我希望显示所有标签,这些标签的数据长度在这两个值之间,并隐藏数据长度大于或小于20的所有标签。 15.
这是到目前为止我尝试过但未成功的链接:
jQuery代码:
$(function () {
$('#slider-container').slider({
range: true,
min: 0,
max: 100,
values: [0, 20],
create: function() {
$("#value").val("0 - 20");
},
slide: function (event, ui) {
$("#value").val(" " + ui.values[0] + " - " + ui.values[1]);
var mi = ui.values[0];
var mx = ui.values[1];
filterSystem(mi, mx);
}
})
});
function filterSystem(minPrice, maxPrice) {
$("#computers div.match js-match").hide().filter(function () {
var price = parseInt($(this).data("data-length"), 10);
return price >= minPrice && price <= maxPrice;
}).show();
}
答案 0 :(得分:1)
编辑:还将您的选择器从$("#computers div.match js-match")
更改为$(".js-match")
您只需使用$(this).data("length")
而不是$(this).data("data-length")
答案 1 :(得分:1)
在您的代码中没有#computers id,因此您的选择器将不会运行。您也没有类别匹配的div,也没有js-match节点。
我会将您的选择器从#computers div.match js-match
更改为em.match.js-match
您还可以使用.attr('data-length')
或.data('length')
结果将是:
$("em.match.js-match").hide().filter(function () {
var price = parseInt($(this).data("length"), 10);
return price >= minPrice && price <= maxPrice;
}).show();