2015-11-25 2 views
0

У меня есть пара divs, каждая из которых имеет атрибут data: data-date.Поиск по строке + 6 неизвестных символов

Теперь я хочу отфильтровать их на основе даты, которую я только что реализовал. Дата, когда я выхожу из datepicker, отформатирован следующим образом: «12/25/2015».

 $('.reviewDatePicker').on('change', function() { 
      var fromDate = $('#reviewDatePickerFrom').val(); 
      var toDate = $('#reviewDatePickerTo').val(); 
      if (fromDate != "" && toDate != "") { 

      } 
     }); 

Атрибут данных дата является дата + часы/мин/сек и выглядит следующим образом: «12/25/2015 9:35:03». Существует причина для дополнительной специфической ценности атрибута данных, это позволяет мне делать больше специальных запросов.

То, что я хотел бы сделать, это дать датпикеру получить все div, у которых есть атрибут данных, который начинается с значения, которое я получаю от datepicker. Мой текущий поиск не будет делать, поскольку ему нужна целая строка.

 $('#dropDownBoxDate').on('change', function() { 
      var value = $('#dropDownBoxDate option:selected').val(); 
      if (value == 'All') { 
       $('#reviewHistoryDiv tr').removeClass("hidden"); 
      } else { 
       $('#reviewHistoryDiv tr').not($("#reviewHistoryDiv tr[data-date='" + value + "']")).addClass("hidden"); 
       $("#reviewHistoryDiv tr[data-date='" + value + "']").removeClass("hidden"); 
      } 
     }); 
+1

Если бы я не был достаточно ясно только спросить, и я буду стараться сделать себя более ясным. –

+0

https://api.jquery.com/attribute-contains-selector/ или https://api.jquery.com/attribute-starts-with-selector/ помогает ли это? –

+0

'$ (" div [data-date^= '12/25/2015'] ")' будет выбирать каждый div, атрибут 'date-date' начинается с указанной даты. – ojovirtual

ответ

1

Используйте необходимый Вам селектор JQuery. Существует «starts with» селектор:

Ваш код будет выглядеть примерно так:

$('#dropDownBoxDate').on('change', function() { 
    var value = $('#dropDownBoxDate option:selected').val(); 
    if (value == 'All') { 
     $('#reviewHistoryDiv tr').removeClass("hidden"); 
    } else { 
     $('#reviewHistoryDiv tr').not($("#reviewHistoryDiv tr[data-date^='" + value + "']")).addClass("hidden"); 
     $("#reviewHistoryDiv tr[data-date^='" + value + "']").removeClass("hidden"); 
      } 
     }); 
+0

Большое спасибо, сэр! –

0

Получить значение атрибута данных.

var date = $('#reviewHistoryDiv tr').data('date'); 

Проверка на наличие

if(date.startsWith(value)){ 
    //found date 
} 
Смежные вопросы