Изменить текст метки с помощью JavaScript - PullRequest
72 голосов
/ 20 декабря 2010

Почему у меня не работает следующее?

<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>

Ответы [ 8 ]

114 голосов
/ 20 декабря 2010

Поскольку ваш сценарий выполняется ДО того, как на странице есть метка (в 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>
18 голосов
/ 20 декабря 2010

Вы пробовали .innerText или .value вместо .innerHTML?

15 голосов
/ 20 декабря 2010

Поскольку элемент метки не загружается при выполнении скрипта. Поменяйте местами элементы label и script, и они будут работать:

<label id="lbltipAddedComment"></label>
<script>
    document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
9 голосов
/ 29 июля 2016

Вместо этого используйте .textContent.

Я также пытался изменить значение метки, пока не попробовал.

Если это не помогло, попробуйте осмотреть объект, чтобыпосмотрите, какие свойства вы можете установить, зарегистрировав его на консоли с помощью console.dir, как показано в этом вопросе: Как я могу зарегистрировать элемент HTML как объект JavaScript?

7 голосов
/ 09 января 2016

Использование .innerText должно работать.

document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
4 голосов
/ 14 августа 2018

Вот еще один способ изменить текст метки с помощью jQuery:

<script>
  $("#lbltipAddedComment").text("your tip has been submitted!");
</script>

Проверьте пример JsFiddle

0 голосов
/ 10 февраля 2018

Попробуйте это:

<label id="lbltipAddedComment"></label>
<script type="text/javascript"> 
      document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>
0 голосов
/ 16 мая 2012

Поскольку сценарий будет выполнен первым. Когда сценарий будет запущен, элементы управления не будут загружены. Поэтому после загрузки элементов управления вы пишете скрипт.

Это будет работать.

...