Подтвердить что ты не робот

"Все, но не" jQuery-селектор

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

$('div')

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

Как это сделать, используя функции JQuery?

4b9b3361

Ответ 1

Простой:

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

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

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

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

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

Ответ 2

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)

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

Ответ 3

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

[doc]

или

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

[doc]

- основные способы выбора всех, кроме одного id

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

Ответ 4

   var elements =  $('div').not('#myid');

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

Ответ 5

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

вот что вам нужно, я думаю.

Ответ 6

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

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

Ответ 7

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

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

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