jQuery селекторы
Не могу понять как прописать jquery селектор типа атрибут TZ больше 10, но меньше 20. Просто есть фильтр, где клиент пишет TZ от Х значения до Y значения. Сделал не рационально:
function FindTZ(){ var tzot = Number(document.getElementById('tz_ot').value); var tzdo = Number(document.getElementById('tz_do').value); var all_list = $('ol.blc1 > li'); for(var i=0;i<all_list.length;i++){ all_list[i].style.display = 'none'; } var list = []; var j = 0; while(tzot<tzdo){ list[j] = []; list[j] = $('ol.blc1 > li[tz="'+tzot+'"]'); j++; tzot++; } for(var x=0;x<list.length;x++){ for(var c=0;c<list[x].length;c++){ list[x][c].style.display = 'block'; } } } Подскажите, может есть в селекторах что-то типа li[tz>10 & tz<20]? |
Есть селекторы выбора после n-го элемента и перед n-ым элементов. n-ый элемент в этих селекторах не включается.
:gt(n) - после n-го :lt(n) - перед n-ым |
MCTrane,
Если они идут друг за другом $(SelStart).nextUntil(SelEnd) http://api.jquery.com/nextUntil/ |
Кстати ещё есть метод .slice(begin, end), который полностью аналогичен методу для работы с массивами.
|
_SR_71_,
и это тут при чом? |
При том, что скажем нужно выбрать ячейки таблицы td с 11-ой по 20-ую,тогда это можно сделать так:
$('td').slice(10, 20) |
MCTrane,
Используй метод filter. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <ul> <li data-tz="10">list item 10</li> <li data-tz="12">list item 12</li> <li data-tz="14">list item 14</li> <li data-tz="16">list item 16</li> <li data-tz="18">list item 18</li> <li data-tz="20">list item 20</li> </ul> <script> //Прячем все элементы, которые не подходят под наше условие var all_items = $('ul > li'); all_items.hide(); var items = $('ul > li').filter(function(index) { var value = $(this).data('tz'); return (value > 10 && value < 20); }); items.show(); </script> |
Часовой пояс GMT +3, время: 15:17. |