2016-06-02 8 views
3

Ich muss alle Elemente im DOM mit JQuery/JS, abgesehen von einem div auswählen. Das einzige Problem ist, ich muss auch die divs Kinder in der Auswahl freistellen. Zum Beispiel:Wie wählt man alle Elemente in DOM abgesehen von einem div und den Kindern

<li>1</li> 
<li>2</li> 
<div> 
    3 
    <li>3.1</li> 
    <li>3.2</li> 
</div> 

$('*').not('div and children'); 

//should give me li 1 and 2, but not div 3 or li 3.1/3.2 

Ich habe versucht, das .not() Schlüsselwort, aber es wählt nur die Eltern div, und die Kinder sind immer noch betroffen.

+0

Sie können 'div' nicht in' ul' verwenden. Es ist nicht gültig in HTML. – Mohammad

+0

@Mohammad Ich weiß, nur ein Beispiel :-) Ich mache es tatsächlich auf einem Bootstrap modal – RhysO

+0

Nur die unmittelbaren Kinder oder alle Nachkommen unter ihnen weglassen? – Barmar

Antwort

3

Sie können alle Elemente mit $('body *') wählen, aber nicht div und nicht die Kinder von div mit .not('div, div *')

$('body *').not('div, div *').css('color', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li>1</li> 
 
<li>2</li> 
 
<div> 
 
    3 
 
    <li>3.1</li> 
 
    <li>3.2</li> 
 
</div>

0
$('*').not('div, div > li'); 
0

console.log($('body *').not('div, div li, script'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<li>1</li> 
 
<li>2</li> 
 
<div> 
 
    3 
 
    <li>3.1</li> 
 
    <li>3.2</li> 
 
</div>

Verwandte Themen