2010-06-03 2 views
0

У меня есть ссылка:innerHTML внутри другого тега

<a id="nextBut" href="somelink" class="button"><span>Next Step</span></a> 

И я могу контролировать на <span>Next step</span> часть с innerHTML, но как я мог оставить <span> в покое и просто изменить «Следующий шаг» часть?

Например:

var NextButJar = document.getElementById('nextBut'); 
NextButJar.disabled = true; 
NextButJar.style.opacity = .5; 
NextButJar.span.innerHTML = 'Read all tabs to continue'; 

У меня также есть:

NextButJar.onClick = handleClick; 
function handleClick(){ 
    if (this.disabled == true) { 
     alert("Please view all tabs first!"); 
     return; 
    } else { 
     alert("allowed to run"); 
    } 
}; 

Что я не могу показаться, чтобы получить работу либо ...

UPDATE

NextButJar.addEvent("click", function() { 
    if (this.disabled == true) { 
     alert("Please view all tabs first!"); 
     return; 
    } 
}); 

Работает во всем, кроме Проводника ...

ответ

2
NextButJar.firstChild.innerHTML = "foo"; 

Установит HTML в первом дочернем элементе. Если вы также можете иметь другое содержание в узле, сделать что-то вдоль линий

NextButJar.getElementsByTagName("span")[0].innerHTML = "foo"; 
+0

Я думаю, что вы имели в виду 'NextButJar.getElementsByTagName ("span") [0] .innerHTML = "foo"; '. 'innerText' или' textContent' были бы более эффективными. –

+0

+1 для немедленного упоминания jQuery – Matt

+1

@ Andy: Забыл свойство ... добавил его сейчас. 'innerText' /' textContent' представляет несовместимость браузера, и я не хотел вникать в это. Лично я нападаю, как правило, на '.firstChild.nodeValue' (при условии, что там уже есть какой-то текст), потому что это работает во всех браузерах. –

0

Чтобы использовать innerHTML дать идентификатор размаху и изменить Ite innerHTML

<a id="nextBut" href="somelink" class="button"><span id="nextButSpan">Next Step</span></a>