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>
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>
avez-vous essayé .innerText
ou .value
au lieu de .innerHTML
?
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>
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?
en utilisant .innerText
devrait fonctionner.
document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
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
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.
essayez ceci:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>