jQuery滑块过滤值

时间:2019-03-04 16:47:38

标签: javascript jquery

我想根据属性数据长度过滤一些文本。例如,如果滑块在值15和20之间,则我希望显示所有标签,这些标签的数据长度在这两个值之间,并隐藏数据长度大于或小于20的所有标签。 15.

这是到目前为止我尝试过但未成功的链接:

FIDDLE

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();
  }

2 个答案:

答案 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();