2016-07-22 4 views
1

kann ich 2 Klassen im selben HTML-Tag/HTML-Container finden, ohne eine Foreach zu benutzen?Finden Sie heraus, ob das Kind die 2 Klassen hat, die ich brauche, ohne foreach?

Ich war so etwas wie das Denken, um herauszufinden, ob das gleiche Kind hat zwei Klassen:

$(".btnUploadWrapper").children().hasClass("postFileSuccess").hasClass("hidden") 

oder

$(".btnUploadWrapper").children().hasClass("postFileSuccess hidden") 

Ist es möglich?

+0

Ja, das ist gut, aber wie umgekehrt, wenn ein Kind nur eine einzige Klasse enthalten sollte?! – kkkk00999

Antwort

1

Sie find auf dem übergeordneten verwenden können zu bekommen alle die Elemente mit den zwei Klassen in ihnen. Sie können direkt auf die elementy verwenden weiter:

var elements = $(".btnUploadWrapper").find(".postFileSuccess.hidden"); 

Wenn Sie nur die direkten Kinder bekommen wollen, können Sie das gleiche mit children tun:

var elements = $(".btnUploadWrapper").children(".postFileSuccess.hidden"); 
+0

Vergessen Sie nicht, dass 'find()' vom ersten Element in den DOM-Baum hinuntergeht, während die ursprüngliche Verwendung von 'children()' nur die untergeordneten Elemente des OPs erhält –

0

Wenn Sie keine Schleife direkt verwenden möchten, können Sie versuchen, und die Elemente auswählen und die length des resultierenden jQuery-Objekt überprüfen:

var $matched = $(".btnUploadWrapper > .postFileSuccess.hidden"); 
if ($matched.length) { 
    // there are some matching elements... 
} 
Verwandte Themen