it-swarm.com.de

Beschriftungstext mit JavaScript ändern

Warum funktioniert das Folgende bei mir nicht?

<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
75
phil crowe

Da Ihr Skript ausgeführt wird, BEVOR die Bezeichnung auf der Seite (im DOM) vorhanden ist. Fügen Sie das Skript entweder nach dem Etikett ein oder warten Sie, bis das Dokument vollständig geladen ist (verwenden Sie eine OnLoad-Funktion, z. B. jQuery ready() oder http: // www. webreference.com/programming/javascript/onloads/ )

Das geht nicht:

<script>
  document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>

Das wird funktionieren:

<label id="lbltipAddedComment">test</label>
<script>
  document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>

Dieses Beispiel (jsfiddle link) verwaltet die Reihenfolge (zuerst das Skript, dann die Bezeichnung) und verwendet ein onLoad:

<label id="lbltipAddedComment">test</label>
<script>
function addLoadEvent(func) {  
      var oldonload = window.onload;  
      if (typeof window.onload != 'function') {  
        window.onload = func;  
      } else {  
        window.onload = function() {  
          if (oldonload) {  
            oldonload();  
          }  
          func();  
        }  
      }  
    }  

   addLoadEvent(function() {  
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';

    });  
</script>
117
Konerak

Hast du es versucht .innerText oder .value anstatt .innerHTML?

19
GordonM

Weil ein label-Element nicht geladen wird, wenn ein Skript ausgeführt wird. Tauschen Sie die Beschriftungs- und Skriptelemente aus, und es funktioniert:

<label id="lbltipAddedComment"></label>
<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
15
mvladic

Verwenden Sie stattdessen .textContent.

Ich hatte auch Schwierigkeiten, den Wert eines Etiketts zu ändern, bis ich es versuchte.

Wenn dies nicht gelingt, überprüfen Sie das Objekt, um festzustellen, welche Eigenschaften Sie festlegen können, indem Sie es mit console.dir In der Konsole protokollieren, wie in der folgenden Frage gezeigt: Wie kann ich ein protokollieren? HTML-Element als JavaScript-Objekt?

9
Pochi

Mit .innerText sollte arbeiten.

document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
7
Shilpa

Hier ist eine andere Möglichkeit, den Text einer Beschriftung mit jQuery zu ändern:

<script>
  $("#lbltipAddedComment").text("your tip has been submitted!");
</script>

Überprüfen Sie das JsFiddle-Beispiel

4

Da das Skript zuerst ausgeführt wird. Wenn das Skript ausgeführt wird, werden zu diesem Zeitpunkt keine Steuerelemente geladen. Nachdem Sie die Steuerelemente geladen haben, schreiben Sie ein Skript.

Es wird klappen.

0
Rachana

Versuche dies:

<label id="lbltipAddedComment"></label>
<script type="text/javascript"> 
      document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>
0
user1611219