¿Por qué no me funciona lo siguiente?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
javascript
html
label
innerhtml
Phil Crowe
fuente
fuente

Respuestas:
Porque su secuencia de comandos se ejecuta ANTES de que la etiqueta exista en la página (en el DOM). Coloque el script después de la etiqueta o espere hasta que el documento se haya cargado por completo (use una función OnLoad, como
jQuery ready()o http://www.webreference.com/programming/javascript/onloads/ )Esto no funcionará:
<script> document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!'; </script> <label id="lbltipAddedComment">test</label>Esto funcionará:
<label id="lbltipAddedComment">test</label> <script> document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!'; </script>Este ejemplo (enlace jsfiddle) mantiene el orden (primero el script, luego la etiqueta) y usa un 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>fuente
¿Has probado
.innerTexto en.valuelugar de.innerHTML?fuente
.valueparalabel.text('Your Text')Porque un elemento de etiqueta no se carga cuando se ejecuta un script. Cambie la etiqueta y los elementos del script y funcionará:
<label id="lbltipAddedComment"></label> <script> document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!'; </script>fuente
Úselo en su
.textContentlugar.También estaba luchando con cambiar el valor de una etiqueta, hasta que probé esto.
Si esto no se resuelve, intente inspeccionar el objeto para ver qué propiedades puede establecer registrándolo en la consola
console.dircomo se muestra en esta pregunta: ¿Cómo puedo registrar un elemento HTML como un objeto JavaScript?fuente
"enter info here:"parte del siguiente:<label id='myLabel'>enter info here:<input type='text' id='inp'/></label>. Solo.textContenttrabajó, y ninguno de.innerHTML,.innerTextni.valuefuncionó. (Descargo de responsabilidad: solo he verificado en Chrome).textContenty.innerText(aunque está bien para leer), no funcionó para mi firefox60 para escribir (también borró el campo de entrada incrustado, al igual que.innerHTML). Así que tuve que recurrir adocument.getElementById('myLabel').childNodes[0].nodeValue="new label text"(por supuesto, el índice podría ser algo diferente a 0, lo que hace que sea un poco torpe, pero me funcionó)El uso
.innerTextdebería funcionar.document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';fuente
Aquí hay otra forma de cambiar el texto de una etiqueta usando jQuery:
<script> $("#lbltipAddedComment").text("your tip has been submitted!"); </script>Verifique el ejemplo de JsFiddle
fuente
Prueba esto:
<label id="lbltipAddedComment"></label> <script type="text/javascript"> document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!'; </script>fuente
Porque la secuencia de comandos se ejecutará primero. Cuando la secuencia de comandos se ejecutará, en ese momento los controles no se cargan. Entonces, después de cargar los controles, escribe un script.
Funcionará.
fuente