2009-09-12 4 views
1

Est-ce la bonne façon de procéder?Modification de la valeur de "id =" avec document.getElementById

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a> 

<a href="#" id="test" onClick="alert('TEST!')">here</a> 

<script language="javascript"> 
var requests = 2; 

function request(self) 
{if(self.href != "#") 
requests -= 1; 

if(requests === 0) 
document.getElementById("test").id= "nextstep";} 
</script> 

Je veux id = "test" pour changer id = "nextstep" si les demandes = 0.

+0

Quel navigateur utilisez-vous? –

+0

Quel type de document utilisez-vous? –

+0

Safari 4, comme j'ai testé dans d'autres aussi, et cela n'a pas fonctionné? – Homework

Répondre

4

Vous pouvez essayer:

document.getElementById('test').setAttribute('id', 'nextstep'); 
+0

Cela n'a pas fonctionné du tout. – Homework

+0

Pas besoin d'utiliser 'setAttribute' (sauf si nous parlons de XML DOM)' element.id = 'nextstep'' devrait suffire dans ce cas. – kangax

1

C'est exactement comment vous » d va le faire, aussi longtemps que vous l'envelopper dans les balises de script ...

<script language="javascript" type="text/javascript"> 
if(requests === 0){ 
    document.getElementById('test').id = "nextstep"; 
} 
</script> 

Si vous êtes d'essayer ing pour déclencher ce sur le clic de ce point d'ancrage, alors vous pouvez utiliser:

<script language="javascript" type="text/javascript"> 
function changeID(){ 
    if(requests === 0){ 
     document.getElementById('test').id = "nextstep"; 
     alert('TEST!'); 
    } 
} 
</script> 

<a href="#" id="test" onclick="changeID()">Test</a> 

EDIT: Eh bien vous avez modifié le contenu de votre question après avoir posté ...

+0

Oui, comprenez-vous ce que j'essaie de faire maintenant? haha – Homework

1

Vous devez utilisez 'setAttribute' pour changer l'identifiant de la balise d'ancrage.

Vous avez bien la partie getElementById ('test'), mais lancez simplement ".setAttribute ('id', 'nextstep');"

Espérons que ça aide!

+0

Pourquoi ne veut-il pas travailler? Ha – Homework

1

si (self.href! = "#")

Il y a votre problème. Les liens hrefs sont canalisés par le navigateur, donc un lien '#' sur la page 'http://www.example.com/' a un attribut href 'http://www.example.com/#' et ne correspond pas à la condition.

Évitez d'utiliser le nom 'self', car il est en conflit avec le nom de l'objet global (alias 'window'). Vous pouvez éviter le passage maladroit dans du « moi » en attribuant le gestionnaire de JavaScript:

document.getElementById('load').onclick= request; 

au lieu de l'attribut onclick, vous pouvez utiliser « ceci » dans la demande(). request() devrait également return false; pour arrêter le lien suivi (faire défiler le navigateur vers le haut). Mieux encore serait d'utiliser un <button> (ou <input type="button">), parce que c'est un bouton d'action et non un lien que vous pourriez ouvrir dans une nouvelle fenêtre ou un signet. (Vous pouvez toujours utiliser CSS pour le faire ressembler moins à un bouton.)

N'utilisez pas setAttribute() pour le HTML, il a des problèmes dans IE sans rapport avec cette utilisation. Réglage element.id était déjà bien.

Mais tout cela semble plutôt une façon étrange de faire ce que vous voulez faire dans tous les cas.

Questions connexes