«Все, но не» JQuery селектор - PullRequest
       3

«Все, но не» JQuery селектор

81 голосов
/ 29 октября 2011

Я могу выбрать (используя jQuery) все элементы div в разметке HTML следующим образом:

$('div')

Но я хочу исключить конкретный div (скажем, имеющий id="myid") из вышеуказанного выбора.

Как это сделать с помощью функций Jquery?

Ответы [ 7 ]

158 голосов
/ 29 октября 2011

Простой:

$('div').not('#myid');

Использование .not() удалит элементы, соответствующие селектору, данному ему, из набора, возвращенного $('div').

Вы также можете использовать селектор :not():

$('div:not(#myid)');

Оба селектора делают то же самое, однако :not() быстрее , предположительно потому, что механизм выбора jQuery Sizzle может оптимизировать его для собственного вызова .querySelectorAll().

9 голосов
/ 29 октября 2011
var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);

Вы могли бы просто сделать это по старинке. Нет необходимости в jQuery с чем-то таким простым.

Советы профессионалов:

Набор элементов dom - это просто массив, поэтому используйте ваш любимый метод toArray для NodeList.

Добавление элементов в набор просто

set.push.apply(set, arrOfElements);

Удаление элемента из набора

set.splice(set.indexOf(el), 1)

Вы не можете легко удалить сразу несколько элементов: (

5 голосов
/ 29 октября 2011
$("div:not(#myid)")

[документ]

или

$("div").not("#myid")

[документ]

- это основные способы выбрать все, кроме одного идентификатора

Здесь вы можете увидеть демо

4 голосов
/ 29 октября 2011
   var elements =  $('div').not('#myid');

Это будет включать в себя все div, кроме одного с идентификатором 'myid'

3 голосов
/ 29 октября 2011

Вы используете свойство .not библиотеки jQuery:

$('div').not('#myDiv').css('background-color', '#000000');

Смотрите это в действии здесь . Div #myDiv будет белым.

3 голосов
/ 29 октября 2011

Это должно сделать это:

$('div:not("#myid")')
3 голосов
/ 29 октября 2011
$('div:not(#myid)');

это то, что тебе нужно, я думаю.

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