2013-12-05 2 views
0

После 3 кликов я хочу изменить текст ссылки, чтобы сказать, что сделано, а не следующее. Я думал, что это было с innerHTML, но я не мог заставить его измениться.Изменение текста внутри элемента ссылки

Спасибо

скрипку демо: http://jsfiddle.net/2w4YJ/2/

 var clicks = 0; 
     var a = document.getElementsByClassName('buttonred'); 
     var link = document.getElementsByTagName('a'); 
     button.onclick = function(e){ 

      if(clicks === 0){ 
       clicks ++; 
       loadStudent(); 
       console.log("1"); 
      }else if(clicks === 1){ 
       clicks++; 
       loadStudent2(); 
       console.log("2"); 
      }else if(clicks === 2){ 
       clicks ++; 
       loadStudent3(); 

       console.log('3'); 
      }else{ 
       console.log(link); 
       button.disabled = true; 


       link.innerHTML = "done!"; 
       //button.setAttribute('disabled', 'disabled'); 
       console.log(button); 
      } 
+0

Дайте ссылку идентификатору и выберите его конкретно. – Shmiddty

ответ

1

Вы используете document.getElementsByTagName('a'), который возвращает список узлов и Nodelist не иметь innerHTML свойство, так как это объект, который содержит коллекцию anchors. Вам нужно получить элемент DOM из списка узлов, поэтому в этом случае вы должны сделать link[0].innerHTML = "done!";, который будет извлекать первый якорь в списке (который в этом случае является единственным, однако вам нужно будет использовать его на основе соответствующий). В качестве альтернативы вы можете предоставить id на якорь и использовать document.getElementById('nextLinkId').innerHTML= "Done!"

Demo

2

getElementsByTagName, как предполагает его название pluralised, возвращает список элементов. Таким образом, вы извлекаете массив элементов, соответствующих тегу привязки.

Для быстрой и грязной исправить, изменить свою ошибочную строку кода:

link[0].innerHTML = "done!" 

Это должно производить такое поведение в fiddle.

Однако вы не всегда можете предсказать, что тег привязки, который вы хотите, будет первым элементом в этом массиве. Поэтому может быть лучше дать привязке идентификатор и использовать метод JavaScript getElementById, чтобы ссылаться на него в дальнейшем.

Смежные вопросы