2013-05-09 2 views
2

У меня есть следующий HTMLКак найти элементы без класса в JQuery?

<div class="one">One<div> 
<div class="two">two<div> 
<div >three<div> 
<div >four<div> 
<div class="three">five<div> 

Как бы мне найти элементы DIV, которые не имеют атрибута класса? т.е. три и четыре?

+0

возможный дубликат [JQuery получить все дивы, которые не имеют атрибута класса] (http://stackoverflow.com/questions/1962247/jquery-get- all-divs-which-do-not-have-class-attribute) –

ответ

3

Используйте :not селектор для фильтрации

$('div:not([class])'); 
0

Предполагая, что вы не хотите выбирать все разделители, у которых нет классов, вы можете использовать nth-child для выбора конкретных, если вы точно знаете, где они находятся в контейнере. Это позволит выбрать ваш класс менее делители:

$('div:nth-child(3)') // Selects the third divider 
$('div:nth-child(4)') // Selects the fourth divider 
$('div:nth-child(3), div:nth-child(4)') // Selects both 

JSFiddle example.

В качестве альтернативы можно выбрать с помощью .prev() и .next():

$('div.two').next() // Selects the divider after div class="two" 
$('div.three').prev() // Selects the divider before div class="three" 
+0

Но как вы находите элементы без класса, если вы уже не знаете, какие из них? – nnnnnn

+0

Это действительно зависит от того, что вы ищете, @nnnnnn. Например, вы можете использовать ': contains', если вы ищете конкретный текст. –

+0

Моя точка зрения заключается в том, что ОП очень четко понимает, что искать, т. Е. Divs, которые не указывают класс. Ваш ответ не распространяется на это ... – nnnnnn

6

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

$('div:not([class])'); 

здесь API

И simple Fiddle

+1

API также говорит, что лучше использовать .not(), чем: not – Benubird

+0

@Benubird Да, поэтому я приложил Api для полноценной идеи :) –

+0

@Benubird Это говорит о том, что можно утверждать, если это так в этом примере. Как один селектор, его можно отправить в 'qSA()' *, как есть *. – alex

3

Объединить селектор :not() с атрибутом настоящего селектором [class].

$("div:not([class])") 

jsFiddle.

0

Есть разные способы сделать это. Вы можете использовать .children(), чтобы получить список, а затем проиндексировать его. Или вы можете посмотреть второй элемент и использовать .next(), чтобы получить его родной брат.

+0

Но как вы находите элементы без класса, если вы уже не знаете, какие они? – nnnnnn

Смежные вопросы