Ich habe eine Funktion, die beim Klicken ein <div>
an ein Element anfügt . Die Funktion ruft den Text des angeklickten Elements ab und weist ihn einer Variablen mit dem Namen zu name
. Diese Variable wird dann als <div>
id
das angehängte Element verwendet.
Ich muss sehen, ob bereits ein <div>
id
with name
vorhanden ist, bevor ich das Element anhänge, aber ich weiß nicht, wie ich das finden soll.
Hier ist mein Code:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Dies scheint ziemlich einfach zu sein, aber ich erhalte die Fehlermeldung " Unerwartetes Dateiende bei der Suche nach dem Klassennamen" . Ich habe keine Ahnung, was das bedeutet.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
Außerdem möchte ich dieses Element löschen können, wenn ich es schließe, wodurch das Element div id [name]
aus dem Dokument entfernt werden soll, dies .remove()
jedoch nicht.
Hier ist der Code dafür:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
Ich .mini-close
habe die Append-Funktion als Kind von hinzugefügt , .labels
sodass es eine Möglichkeit gab, die angehängte Funktion <div>
bei Bedarf zu schließen. Nach dem Klicken .mini-close
und dem erneuten Klicken auf denselben Namen wird immer li.friends
noch der gefunden div id [name]
und der erste Teil meiner if
Anweisung zurückgegeben.
quelle
$("div#" + name).css({bottom: '30px'});
ist falsch, sollte es sein$("div#" + name).css('bottom', '30px');
Antworten:
Sie können
.length
nach der Auswahl verwenden, um festzustellen, ob sie mit Elementen wie den folgenden übereinstimmt:Die Vollversion:
Oder die Nicht-jQuery-Version für diesen Teil (da es sich um eine ID handelt):
quelle
!$("#"+name).length)
:)===
anstatt zu sehen==
.Nicks Antwort trifft es. Sie können den Rückgabewert von getElementById auch direkt als Bedingung verwenden, anstatt ihn mit null zu vergleichen (so oder so funktioniert es, aber ich persönlich finde diesen Stil etwas lesbarer):
quelle
Versuchen Sie, die Länge des Selektors zu überprüfen. Wenn er Ihnen etwas zurückgibt, muss das Element vorhanden sein, sonst nicht.
Verwenden Sie die erste if-Bedingung für id und die zweite für class.
quelle
quelle
Eine andere Abkürzung:
quelle
Sie können dies mit jquery einfach folgendermaßen überprüfen:
quelle
Der einfachste Weg ist ..
Dies ist auch Teil der HTML5-Spezifikationen: https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object
quelle
Hier ist die von mir verwendete jQuery-Funktion:
Dies gibt einen booleschen Wert zurück. Wenn ein Element vorhanden ist, wird true zurückgegeben. Wenn Sie mit dem Klassennamen auswählen Element möchten, ersetzen Sie einfach
#
mit.
quelle
Sie können auf verschiedene Arten damit umgehen,
Ziel ist es zu überprüfen, ob das div existiert, und dann den Code auszuführen. Einfach.
Bedingung:
Hinweis:
Dies gibt jedes Mal eine Zahl zurück, wenn es ausgeführt wird. Wenn es kein div gibt, gibt es eine Null [0], und da keine 0 in binär als falsch dargestellt werden kann, können Sie sie in der if-Anweisung verwenden. Und Sie können es als Vergleich mit einer Zahl ohne Zahl verwenden. während jeder gibt es drei Aussagen unten gegeben
quelle
Geben Sie die ID, die Sie einchecken möchten, in die Methode jquery is ein.
quelle