Wie überprüfe ich, ob jQuery find return true oder false zurückgibt? [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
Sadikhasan

HTML Quelltext

<div class="parent1">
    <div class="child1">Child1</div>
    <div class="child2">Child2</div>
    <div class="child3">Child3</div>
</div>

<div class="parent2">
    <div class="child1">Child1</div>
    <div class="child2">Child2</div>
</div>

jQuery-Code

alert($(".parent1").find(".child3").text());
alert($(".parent2").find(".child3").text());

Meine Frage ist, wie man das prüft find Funktionsrückgabe wahr oder falsch?

Im obigen Code gibt es einen leeren Wert zurück, wo parent1 Klasse haben child3 Klasse wo parent2 Klasse nicht haben child3 Klasse.

JS Geige

  • find gibt keinen booleschen Wert zurück.

    – RAM

    25. Dezember 2014 um 11:00 Uhr


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.

var elem = $(".parent2").find(".child3");
if(elem.length){
    alert(elem.text());
}else{
    alert('Element doesnt exists')
}

Alternativ können Sie verwenden .has()

var elem = $(".parent2");
if(elem.has(".child3")){
    alert(elem.find(".child3").text());
}else{
    alert('Element doesnt exists')
}

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.

if($(".parent1").find(".child3").length > 0) {
    alert("parent1 child3");
}
if($(".parent2").find(".child3").length > 0) {
    alert("parent2 child3");
}

Benutzer-Avatar
charlietfl

Immer wenn Sie einen Selektor einschließen $() Es wird immer ein jQuery-Objekt zurückgegeben, das das Array der übereinstimmenden Elemente enthält.

Daher können Sie die verwenden length Eigenschaft, um zu testen, ob es Übereinstimmungen gibt

var $collection = $(".parent2").find(".child3").length;
if ($collection.length)....

Sie können auch andere Ansätze verwenden, z is()

var #collection = $(".parent2");
if($collection.children().is(".child3") /* returns tru if there are matches

Es gibt kein Element .child3 für .parent2,

alert($(".parent2").find(".child3").text());

Versuche dies:

alert($(".parent2").find(".child2").text());

Versuchen Sie dies, wenn Sie nur das letzte Element möchten

alert($(".parent1").find("[class^=child]:last").text());
alert($(".parent2").find("[class^=child]:last").text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent1">
  <div class="child1">Child1</div>
  <div class="child2">Child2</div>
  <div class="child3">Child3</div>
</div>

<div class="parent2">
  <div class="child1">Child1</div>
  <div class="child2">Child2</div>
</div>

console.log(Boolean($(".parent1").find(".child3").length));
console.log(Boolean($(".parent2").find(".child3").length));
    
console.log(!!$(".parent1").find(".child3").length);
console.log(!!$(".parent2").find(".child3").length);

console.log($(".parent1").find(".child3").length > 0);
console.log($(".parent2").find(".child3").length > 0);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent1">
  <div class="child3"></div>
</div>

<div class="parent2"></div>

1245770cookie-checkWie überprüfe ich, ob jQuery find return true oder false zurückgibt? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy