Erste DOM-element-Wert mit reinem JavaScript
Ist es Unterschied zwischen diesen Lösungen?
Lösung 1:
JS:
function doSomething(id, value) {
console.log(value);
//...
}
HTML:
<input id="theId" value="test" onclick="doSomething(this.id, this.value)" />
...und Lösung 2:
JS:
function doSomething(id) {
var value = document.getElementById(id).value;
console.log(value);
//...
}
HTML:
<input id="theId" value="test" onclick="doSomething(this.id)" />
- Edit: Da mehrere haben darauf hingewiesen, es sind ein paar Tippfehler (einschließlich des Mangels der name einer Funktion in der javascript), aber konzeptionell sind Sie gleich und beide funktionieren.
- Die änderungen, die gemacht wurden, nach 3 Jahren machte die meisten der Antworten hier ungültig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, vor allem! Ich glaube nicht, dass die zweite funktioniert (und wenn Sie es tut, nicht sehr portabel). Die erste sollte OK sein.
Sollte dies auch funktionieren.
Update: die Frage wurde bearbeitet. Beide Lösungen sind jetzt gleichwertig.
items[i].id
Die zweite Funktion haben sollte:
Dann sind Sie im Grunde die gleiche Funktion.
In der zweiten version, sind Sie vorbei die zurückgegebene Zeichenfolge aus
this.id
. Nicht das element selbst.So
id.value
nicht geben Ihnen, was Sie wollen.Würden Sie brauchen, um passieren Sie das element mit
this
.dann:
Hinweis: In einigen Browsern, die zweite würde funktionieren, wenn du es getan hast:
weil element-IDs sind eine Globale Eigenschaft, aber das liegt sicher nicht.
Macht es am meisten Sinn, einfach übergeben Sie das element mit
this
statt Holen es wieder mit seiner ID.Übergeben das Objekt:
Können Sie alle Daten aus dem Objekt:
Oder übergeben Sie die
id
nur:Rufen Sie das Objekt, und nach diesem Wert:
Gibt es keinen Unterschied, wenn wir uns auf Effekt - Wert der gleiche sein wird. Aber es ist etwas mehr...
Lösung 3:
JS:
HTML:
wenn DOM-element hat id dann können Sie es verwenden in js direkt