Reputation: 1208
I have a structure like this in my DOM:
<ul>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
<li>
<div class="truc"></div>
<div class="machin"></div>
<div class="chose"></div>
</li>
</ul>
I want to select all the ul child (it include the elements, except the class called "chose". I tried something like:
$('ul').children().not('.chose')
but i didn't success...
Upvotes: 0
Views: 79
Reputation: 20626
Try using $('ul li')
. <li>
are the immediate children of <ul>
not<div>
$('ul li').children().not('.chose')
If you want to remove these <div>
s
$('ul li').children('.chose').remove();
Upvotes: 1
Reputation: 128791
The children()
of the ul
element are li
elements, not the div
elements you're after. You need to use jQuery's find()
method instead:
$('ul').find('div').not('.chose')
But i want to select the
li
elements to... i want that the complete return be:<li> <div class='truc'></div> <div class='machin'></div> </li>
In that case you can use this:
$('ul').find('li, div').not('div.chose')
Upvotes: 1