2010-06-03 6 views
0

J'ai un lien:innerHTML dans une autre balise

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

Et je peux contrôler la partie <span>Next step</span> avec innerHTML mais comment pourrais-je laisser seul le <span> et juste changer la partie 'étape suivante?

Par exemple:

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

J'ai aussi:

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

Ce qui ne semble pas possible de faire fonctionner soit ...

MISE À JOUR

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

Fonctionne dans tout sauf Expl orer ...

Répondre

2
NextButJar.firstChild.innerHTML = "foo"; 

Permet de définir le code HTML dans le premier élément enfant. Si vous pourriez aussi avoir d'autres contenus dans le nœud, faire quelque chose le long des lignes de

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

Je pense que vous vouliez dire 'NextButJar.getElementsByTagName ("span") [0] .innerHTML = "foo"; '. 'innerText' ou' textContent' seraient plus efficaces, cependant. –

+0

+1 pour ne pas mentionner jQuery immédiatement – Matt

+1

@Andy: Oublié l'établissement ... l'a ajouté immédiatement. 'innerText' /' textContent' introduit une incompatibilité de navigateur et je ne voulais pas entrer dans cela. Personnellement, j'ai en fait tendance à faire '.firstChild.nodeValue' (à condition qu'il y ait déjà du texte), car cela fonctionne dans tous les navigateurs. –

0

Pour utiliser innerHTML donner id à la portée et changer ite innerHTML

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