¿Por qué no me funciona lo siguiente?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
¿Por qué no me funciona lo siguiente?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
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>
¿Has probado .innerText
o en .value
lugar de .innerHTML
?
.value
paralabel
.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>
Úselo en su .textContent
lugar.
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.dir
como se muestra en esta pregunta: ¿Cómo puedo registrar un elemento HTML como un objeto JavaScript?
"enter info here:"
parte del siguiente: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Solo .textContent
trabajó, y ninguno de .innerHTML
, .innerText
ni .value
funcionó. (Descargo de responsabilidad: solo he verificado en Chrome)
.textContent
y .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 a document.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ó)
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
Prueba esto:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>