Perché il seguente non funziona per me?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Perché il seguente non funziona per me?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Risposte:
Perché lo script viene eseguito PRIMA che l'etichetta esista sulla pagina (nel DOM). Inserisci lo script dopo l'etichetta o attendi fino al completo caricamento del documento (utilizza una funzione OnLoad, come jQuery ready()
o http://www.webreference.com/programming/javascript/onloads/ )
Questo non funzionerà:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
Questo funzionerà:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
Questo esempio (jsfiddle link) mantiene l'ordine (prima lo script, poi l'etichetta) e utilizza 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>
Hai provato .innerText
o .value
invece di .innerHTML
?
.value
perlabel
.text('Your Text')
Perché un elemento etichetta non viene caricato quando viene eseguito uno script. Scambia l'etichetta e gli elementi dello script e funzionerà:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
Uso .textContent
invece.
Stavo lottando anche per cambiare il valore di un'etichetta, finché non l'ho provato.
Se questo non risolve, prova a ispezionare l'oggetto per vedere quali proprietà puoi impostare accedendo alla console con console.dir
come mostrato in questa domanda: come posso registrare un elemento HTML come oggetto JavaScript?
"enter info here:"
parte di quanto segue: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Funzionava solo .textContent
, e niente .innerHTML
, .innerText
o .value
funzionava. (Dichiarazione di non responsabilità: ho controllato solo in Chrome.)
.textContent
e .innerText
(mentre va bene per la lettura), non ha funzionato per il mio firefox60 per la scrittura (ha anche cancellato il campo di input incorporato, proprio come .innerHTML
). Quindi ho dovuto ricorrere a document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(ovviamente, l'indice potrebbe essere qualcosa di diverso da 0, il che lo rende un po 'complicato ma ha funzionato per me)
Ecco un altro modo per modificare il testo di un'etichetta utilizzando jQuery:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
Controlla l' esempio JsFiddle
Prova questo:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>