it-swarm.com.de

Überprüfen Sie, ob ein Div mit JQuery vorhanden ist

Mögliches Duplikat:
Gibt es eine "Exists" -Funktion für jQuery

Ja, ich weiß, das wurde oft gefragt. Aber es verwirrt mich, da die Ergebnisse auf Google für diese Suche verschiedene Methoden zeigen (unten aufgeführt)

$(document).ready(function() {
    if ($('#DivID').length){
        alert('Found with Length');
    }

    if ($('#DivID').length > 0 ) {
        alert('Found with Length bigger then Zero');
    }

    if ($('#DivID') != null ) {
        alert('Found with Not Null');
    }
});

Welches der 3 ist der richtige Weg, um zu überprüfen, ob das Div existiert?

EDIT: Es ist schade zu sehen, dass die Leute nicht lernen wollen, was der bessere Ansatz aus den drei verschiedenen Methoden ist. Diese Frage bezieht sich nicht auf "Wie prüfe ich, ob ein Div existiert?", Sondern darauf, welche Methode besser ist und, wenn jemand erklären könnte, warum es besser ist.

294
Dementic

Der erste ist der prägnanteste, ich würde damit gehen. Die ersten beiden sind gleich, aber die erste ist nur ein bisschen kürzer, sodass Sie Byte sparen. Der dritte ist schlicht falsch, weil diese Bedingung immer wahr ist, weil das Objekt nie für diese Angelegenheit null oder falsch ist.

179
karim79

Wenn Sie lediglich überprüfen, ob eine ID vorhanden ist, müssen Sie nicht auf jQuery zugreifen. Sie können einfach:

if(document.getElementById("yourid") !== null)
{
}

getElementById gibt null zurück, wenn es nicht gefunden werden kann.

Referenz .

Wenn Sie jedoch vorhaben, das jQuery -Objekt später zu verwenden, würde ich vorschlagen:

$(document).ready(function() {
    var $myDiv = $('#DivID');

    if ( $myDiv.length){
        //you can now reuse  $myDiv here, without having to select it again.
    }


});

Ein Selektor gibt immer ein jQuery -Objekt zurück, sodass keine Prüfung gegen null erforderlich sein sollte Dies ist ein Edge-Fall, in dem Sie nach null suchen müssen - aber ich glaube nicht, dass dies der Fall ist.

Wenn der Selektor nichts findet, dann length === 0, was "falsch" ist (wenn es in bool umgewandelt wird, ist es falsch). Wenn es also etwas findet, sollte es "wahr" sein - Sie müssen also nicht auf> 0 prüfen. Nur für die "Wahrhaftigkeit"

93
Alex KeySmith

Wie karim79 erwähnt hat, ist der erste die prägnanteste. Ich könnte jedoch argumentieren, dass die zweite Methode verständlicher ist, da einige Javascript/jQuery-Programmierer nicht wissen, dass Werte ungleich Null/falsch in if-Anweisungen mit true ausgewertet werden. Und aus diesem Grund ist die dritte Methode falsch.

9
tskuzzy