Wie Entferne ich bestimmte Elemente mit einem jQuery .each-Schleife?
Nehme an, ich habe ein HTML-Dokument mit:
<form id = "my_form">
<input type = "text" />
<input type = "text" />
<input type = "text" />
<button type = "button" onclick = "removeGoodInputs()">Do the job</button>
</form>
Ich loswerden wollen der Eingänge Werte erfüllen einer Bedingung (in meinem JS). Ich habe versucht, meinen removeGoodInputs()
Funktion (wie unten), aber dies löscht alle Eingaben aus dem Formular. Wie kann ich dieses Problem beheben?
function removeGoodInputs() {
$("#my_form input").each(function() {
if(this.attr("value") == 10)
$(this).remove();
});
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
.attr()
ist eine jQuery-Methode, also es kann nur aufgerufen werden, auf ein jQuery-Objekt. Weitere, jQuery.val()
ist der einfachere Weg, um den Wert (eine Verknüpfung).So, diese Zeile des Codes ist nicht korrekt:
Ich würde empfehlen, entweder:
oder:
Hinweis, ich habe auch die Vergleiche mit strings sein, da das ist, was
.value
zurück und es ist besser, sich nicht auf eine automatische Typ-Konvertierung.Können Sie sehen, es funktioniert hier: http://jsfiddle.net/jfriend00/HMemp/
if($(this).attr("value") == 10)
.val()
oder.value
sind direkter.either
so dass ich dachte, es sollte erwähnt werden, auch als eine weitere option.Anderen Weg, um dieses Problem zu lösen, ist die Verwendung
.- filter
[docs]:attr
ist eine der Methoden von jQuery-Objekt, sollten Sie zuerst konvertieren Sie die DOM-Objektthis
um ein jQuery-Objekt und jQuery-Methoden$(this).attr("")
auch Sie könnenval
Methode für das abrufen/einstellen von Werten von Formular-Steuerelemente anstelle vonattr
und Sie brauchen nichteach
verwenden, können SieAttribute Equals Selector
:$("#my_form input[value='10']")
wählt die Eingänge, deren Werte10
.