Почему у меня не работает следующее?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
javascript
html
label
innerhtml
Фил Кроу
источник
источник
Ответы:
Потому что ваш скрипт запускается ДО того, как метка существует на странице (в 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, что делает немного запутанным, но сработало для меня)Использование
.innerText
должно работать.document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
источник
Вот еще один способ изменить текст метки с помощью 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>
источник
Потому что скрипт будет выполнен первым ... Когда скрипт будет выполнен, в это время элементы управления не загружаются. Итак, после загрузки элементов управления вы пишете сценарий.
Это сработает.
источник