Modifier le texte de l'étiquette en utilisant JavaScript

pourquoi ce qui suit ne marche pas pour moi?

<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
56
demandé sur Peter Mortensen 2010-12-20 13:23:52

8 réponses

parce que votre script court avant que l'étiquette n'existe sur la page (dans le DOM). Soit mettre le script après l'étiquette, soit attendre que le document soit complètement chargé (utiliser une fonction OnLoad, telle que la jQuery ready() ou http://www.webreference.com/programming/javascript/onloads / )

Cela ne marchera pas:

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

Cela va fonctionner:

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

Cet exemple (lien jsfiddle) maintient l'ordre (script d'abord, puis label) et utilise une 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>
103
répondu Konerak 2010-12-20 10:37:21

avez-vous essayé .innerText ou .value au lieu de .innerHTML ?

15
répondu GordonM 2011-09-02 23:26:02

parce qu'un élément d'étiquette n'est pas chargé lorsqu'un script est exécuté. Changez les éléments label et script, et ça marchera:

<label id="lbltipAddedComment"></label>
<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
14
répondu mvladic 2018-10-06 11:20:28

utilisez .textContent à la place.

j'avais du mal à changer la valeur d'une étiquette aussi, jusqu'à ce que je l'essaie.

si cela ne résout pas le problème, essayez d'inspecter l'objet pour voir quelles propriétés Vous pouvez définir en l'enregistrant sur la console avec console.dir comme indiqué sur cette question: Comment puis-je enregistrer un élément HTML en tant qu'objet JavaScript?

8
répondu Pochi 2017-05-23 11:47:05

en utilisant .innerText devrait fonctionner.

document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
7
répondu Shilpa 2016-01-09 09:50:46

Voici une autre façon de changer le texte d'une étiquette en utilisant jQuery:

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

cochez la case jsfiddle example

0
répondu mustapha mekhatria 2018-08-14 12:43:02

Parce que le script sera exécuté en premier.. Quand le script sera exécuté, les contrôles ne seront pas chargés. Donc après avoir chargé les commandes, vous écrivez un script.

ça va marcher.

0
répondu Rachana 2018-10-06 11:21:29

essayez ceci:

<label id="lbltipAddedComment"></label>
<script type="text/javascript"> 
      document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>
-2
répondu user1611219 2018-02-10 09:30:07