Селекторы jQuery: выберите два элемента и все элементы между ними - PullRequest
26 голосов
/ 23 апреля 2010

У меня есть загрузка LI внутри UL, и у каждого есть уникальный идентификатор.

Учитывая два идентификатора, каков наилучший способ выбрать два соответствующих LI, и все LI между ними?

Спасибо!

Ответы [ 3 ]

43 голосов
/ 23 апреля 2010

Вы можете сделать это следующим образом:

$('#id').nextUntil('#id2').andSelf().add('#id2')

Важно отметить, что .nextUntil() включает не включает элемент, который он собирается, пока не остановитсяс предыдущим.Чтобы добавить этот элемент, вам нужно позвонить .add(selector) в конце.

Вам также понадобится .andSelf(), чтобы включить first element

Обновление август 2017

Метод jQuery .andSelf() теперь не поддерживается в jQuery 1.8+, используйте .addBack() вместо того, чтобы добавить первый выбор обратно.Кроме того, .prevUntil() можно использовать, если последний элемент (# id2) предшествует первому элементу (# id1) в выборе.Сравните .index() для обоих элементов, чтобы определить их порядок в документе.

18 голосов
/ 23 апреля 2010

http://api.jquery.com/nextUntil/

Учитывая выражение селектора, представляющее набор элементов DOM, метод .nextUntil() просматривает наследников этих элементов в дереве DOM, останавливаясь, когда достигает элемента, соответствующего аргументу метода. Новый возвращаемый объект jQuery содержит всех следующих братьев и сестер вплоть до, но не включая тот, который соответствует аргументу .nextUntil().

Если селектор не соответствует или не указан, будут выбраны все следующие братья и сестры; в этих случаях он выбирает те же элементы, что и метод .nextAll(), когда не предусмотрен селектор фильтра.

Начиная с jQuery 1.6 , узел DOM или объект jQuery вместо селектора могут быть переданы методу .nextUntil().

Метод необязательно принимает выражение селектора для своего второго аргумента. Если этот аргумент указан, элементы будут отфильтрованы путем проверки их соответствия ...

0 голосов
/ 23 апреля 2010

Чтобы выбрать все LI между UL

 $(document).ready(function(){
            $("li[ID*=ids]").css("bacground-color","red");// contian common world ex ids1
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...