Почему у меня не работает следующее?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Почему у меня не работает следующее?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Ответы:
Потому что ваш скрипт запускается ДО того, как метка существует на странице (в DOM). Либо поместите сценарий после метки, либо подождите, пока документ полностью загрузится (используйте функцию OnLoad, такую как jQuery ready()
или http://www.webreference.com/programming/javascript/onloads/ )
Это не сработает:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
Это будет работать:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
В этом примере (ссылка jsfiddle) поддерживается порядок (сначала скрипт, затем метка) и используется 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>
Вы пробовали .innerText
или .value
вместо .innerHTML
?
.value
заlabel
.text('Your Text')
Поскольку элемент метки не загружается при выполнении скрипта. Поменяйте местами метку и элементы скрипта, и все заработает:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
.textContent
Вместо этого используйте .
Я тоже боролся с изменением значения метки, пока не попробовал это.
Если это не помогло, попробуйте проверить объект, чтобы увидеть, какие свойства вы можете установить, зарегистрировав его в консоли, console.dir
как показано в следующем вопросе: Как я могу зарегистрировать HTML-элемент как объект JavaScript?
"enter info here:"
часть следующего: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Только .textContent
работало, и ни одно .innerHTML
, .innerText
ни .value
работало. (Отказ от ответственности: я проверял только в Chrome.)
.textContent
и .innerText
(хотя это нормально для чтения) не работал для моего firefox60 для записи (он также удалил встроенное поле ввода, как и .innerHTML
). Так что мне пришлось прибегнуть к document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(конечно, index может быть чем-то другим, кроме 0, что делает немного запутанным, но сработало для меня)
Вот еще один способ изменить текст метки с помощью jQuery:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
Проверьте пример JsFiddle
Попробуй это:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>