Sie konnten einfach nicht verwenden find in if Bedingung. Du könntest benutzen has oder prüfen Sie die length Eigentum.
var elm = $('.parent1');
if(elm.has('.child3')){
var child3 = elm.find('.child3');
}
Oder einfach so
var child3 = $('.parent1').find(".child3");
if(child3.length > 0) {
// child3 is present
}
Laut Dokumentation (api.jquery.com/has) Die ‘has’-Methode gibt jQuery zurück, keinen booleschen Wert. Das bedeutet, dass das erste Beispiel in dieser Antwort immer wahr zurückgibt. Anhand des Beispiels auf der Dokumentationsseite müssen Sie prüfen, ob die length-Eigenschaft des zurückgegebenen Objekts größer als Null ist und nicht einfach, ob etwas zurückgegeben wurde.
– Mark Sizer
13. Februar 2017 um 10:55 Uhr
has funktioniert bei mir nicht
– Sergij Ostrowski
29. August 2017 um 14:58 Uhr
Sie können verwenden .length -Eigenschaft, um zu überprüfen, ob das Element vorhanden ist.
Als die Dokumente für find() erklären, find() gibt ein jQuery-Objekt zurück. Es hat eine Längeneigenschaft, die auf eine erfolgreiche Abfrage überprüft werden kann.
find
gibt keinen booleschen Wert zurück.– RAM
25. Dezember 2014 um 11:00 Uhr