2009-07-23 1 views
0

Zum Beispiel wir solchen dom haben:jQuery - finden alle Elemente, ohne dass jemand zwischen

<div id="main" class=".container"> 
    any other elements 
    <div> 
     <span class="edit" /> 
    </div> 
    <div class=".container"> 
     <div class="edit"> 
    </div> 
</div> 

Wie Abfrage zu machen, nur zuerst bearbeiten

So etwas wie $ ('# main .edit auszuwählen: nicht (.container zwischen) ')

+0

Verwenden Sie nicht class = ". container", aber class = "container" –

+1

Ich denke jeder missverstanden die Frage. Die Frage ist, wie man alle Elemente der Klasse "edit" auswählt, ausgenommen diejenigen, die in einem div mit der Klasse "container" enthalten sind. Im Beispiel ist das in der Tat das erste, aber das erste Match zu sein, ist hier nicht das Kriterium. –

Antwort

1

Es ist ziemlich verwirrend, wenn der äußere Behälter auch von der Klasse "Container" ist.

Dies funktioniert:

$('#main .edit:not(#main .container .edit)') 

Wenn Ihre äußere div nicht über die "Container" Klasse:

$('#main .edit:not(.container .edit)') 

(Anmerkung: Sie sollten keine class = "Container" , aber class = "container")

+1

Ich sehe nicht, warum es brechen würde, wenn es mehr als eine Schicht Verschachtelung gibt. Der Selektor ".container .edit" entspricht jeder "Edit" -Klasse unterhalb einer "container" -Klasse, egal wie tief verschachtelt. –

Verwandte Themen