Как применить оператор AND в jQuery - PullRequest
0 голосов
/ 12 декабря 2011

Я хочу скрыть строки из индекса строки от 1 до 3. Приведенный ниже код не работает:

$("table").find("tr:gt(1)").find("tr:lt(3)").each(function () { $(this).hide() });

Ответы [ 4 ]

2 голосов
/ 12 декабря 2011

Вы можете использовать filter, чтобы уменьшить соответствующий набор элементов до элементов в правильном диапазоне:

$("table tr").filter(function(i) {
    return i > 1 && i < 3;
}).hide();

Обратите внимание, что я не использовал each для перебора набора подходящих элементов в конце, потому что hide, как и большинство методов jQuery, в любом случае применяется ко всем элементам в наборе.

2 голосов
/ 12 декабря 2011

Первый find () возвращает соответствующие элементы, а затем второй фильтрует этот выбор далее.

Попробуйте этот селектор

$('table tr:gt(0):lt(4)').hide();

Также, slice () будет отличным вариантом (если не лучшим)

$('table tr').slice(1,4).hide();
2 голосов
/ 12 декабря 2011

Попробуйте использовать метод slice .

Из документов:

Описание: Сократить набор соответствующих элементов до подмножества, определенного диапазоном индексов

.slice (начало [, конец])

start Целое число, обозначающее позицию на основе 0, в которой начинают выбираться элементы. Если отрицательно, это указывает на смещение от конца набора.

end Целое число, обозначающее позицию на основе 0, в которой элементы перестают выбираться. Если отрицательно, это указывает на смещение от конца набора. Если не указан, диапазон продолжается до конца набора.

Код:

http://jsfiddle.net/tkVut/

$("table tr").slice(1, 3 + 1).hide();

Также обратите внимание, что метод hide не требует использования each:

Скрыть соответствующие элементы

1 голос
/ 12 декабря 2011

А вот такой селектор?

$('table tr:gt(0):lt(4)').hide();

Я не могу сказать, хотите ли вы включительно индексы 1 и 3, поэтому сейчас я предполагаю, что вы делаете.

Если бы не вы, вы могли бы использовать:

$('table tr:gt(1):lt(3)').hide();

Но это будет просто индекс 2:

$('table tr:eq(2)').hide();

Если вам нужно сохранить $('table') в качестве базового селектора, вы можете использовать метод find:

$('table').find('tr:gt(#):lt(#)').hide().end().chain().more().stuff()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...