Jquery. Вопрос о функции фильтра - PullRequest
1 голос
/ 11 апреля 2010

Это довольно простой вопрос, однако я не понимаю, как это сделать:

У меня есть слайдер, фильтрующий некоторые вещи

$("#price").slider(
  {
  range: true,
  step: 5, 
  change: function(e,ui) {
     $('total').filter(function(index) {
      return ( ($("#price").slider("values", 0)) <= $(this).text() <=
                   ($("#price").slider("values", 1)));
     }).parents('div.item').hide();
  }
});

В принципе, я хочу массив с индексом каждого из элементов, которые были отфильтрованы, чтобы я мог использовать их для других целей. Я думал о редактировании функции фильтра что-то вроде:

$('total').filter(function(index) {
   var matches = ( ($("#price").slider("values", 0)) <= $(this).text() <=
                   ($("#price").slider("values", 1)));
   return matches;
}.myFunction(matches){
//do some stuff here with matched elements 
}

Это не правильно, ваша помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

Обновление для комментариев: Вы можете сделать это, используя .map(), например:

change: function(e,ui) {
  var self = $(this);
  var indexes = [];
  $('.total').filter(function(index) {
      var txt = $(this).text();
      if (self.slider("values", 0) <= txt && txt <= self.slider("values", 1))
      {
        indexes.push(index);
        return true;
      }
  }).parents('div.item').hide();
  //do something with indexes array
}
0 голосов
/ 12 апреля 2010

Вот полный код, над которым я работаю:

$("#price").slider(
            {
            range: true,
            step: 5, 
            change: function(e,ui) { 
            $('span.the_total').filter(function(index) {
                    return ( ($("#price").slider("values", 0)) <= $(this).text() <= ($("#price").slider("values", 1)));
            }).parents('div.item_hotel').show();

            $('span.the_total').filter(function(index) {
                     return ( ($("#price").slider("values", 0)) > $(this).text() );
            }).parents('div.item_hotel').hide();

            $('span.the_total').filter(function(index) {
                     return ( ($("#price").slider("values", 1)) < $(this).text());
            }).parents('div.item_hotel').hide();

            }});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...