Warum funktioniert das Folgende bei mir nicht?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
javascript
html
label
innerhtml
Phil Crowe
quelle
quelle
Antworten:
Da Ihr Skript ausgeführt wird, BEVOR das Label auf der Seite (im DOM) vorhanden ist. Setzen entweder das Skript nach dem Etikett, oder warten Sie, bis das Dokument vollständig geladen ist (verwenden Sie eine OnLoad - Funktion, wie die
jQuery ready()
oder http://www.webreference.com/programming/javascript/onloads/ )Das wird nicht funktionieren:
Das wird funktionieren:
In diesem Beispiel (jsfiddle-Link) wird die Reihenfolge (zuerst Skript, dann Bezeichnung) beibehalten und ein onLoad verwendet:
quelle
Hast du es versucht
.innerText
oder.value
statt.innerHTML
?quelle
.value
fürlabel
.text('Your Text')
Weil ein Label-Element nicht geladen wird, wenn ein Skript ausgeführt wird. Tauschen Sie die Beschriftungs- und Skriptelemente aus, und es wird funktionieren:
quelle
Verwenden Sie
.textContent
stattdessen.Ich hatte auch Probleme damit, den Wert eines Labels zu ändern, bis ich es versuchte.
Wenn sich das Problem nicht beheben lässt, überprüfen Sie das Objekt, um festzustellen, welche Eigenschaften Sie festlegen können, indem Sie es wie in der folgenden
console.dir
Frage gezeigt in der Konsole protokollieren : Wie kann ich ein HTML-Element als JavaScript-Objekt protokollieren?quelle
"enter info here:"
Teil der folgenden :<label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Nur.textContent
arbeitete, und keiner von.innerHTML
,.innerText
oder.value
arbeitete. (Haftungsausschluss: Ich habe nur in Chrome eingecheckt.).textContent
und.innerText
(obwohl gut zum Lesen), funktionierte nicht für meine Firefox60 zum Schreiben (es löschte auch eingebettetes Eingabefeld, genau wie.innerHTML
). Also musste ich zurückgreifendocument.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(natürlich könnte der Index etwas anderes als 0 sein, was ein wenig klobig ist, aber für mich funktioniert hat)Verwenden
.innerText
sollte funktionieren.quelle
Hier ist eine andere Möglichkeit, den Text eines Etiketts mit jQuery zu ändern:
Überprüfen Sie das JsFiddle-Beispiel
quelle
Versuche dies:
quelle
Da das Skript zuerst ausgeführt wird. Wenn das Skript ausgeführt wird, werden zu diesem Zeitpunkt keine Steuerelemente geladen. Nach dem Laden der Steuerelemente schreiben Sie ein Skript.
Es wird klappen.
quelle