Question

Est-ce la bonne façon de le faire?

<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 souhaite id = " test " pour passer à id = " nextstep " si les requêtes = 0.

Était-ce utile?

La solution

Vous pouvez essayer:

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

Autres conseils

C'est exactement ce que vous feriez, à condition de l'envelopper dans des balises de script ...

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

Si vous essayez de déclencher ceci au clic de cette ancre, utilisez:

<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>

MODIFIER: vous avez modifié le contenu de votre question une fois que j'ai posté ce message ...

Vous devez utiliser 'setAttribute' pour changer l'ID de la balise d'ancrage.

Vous avez le droit getElementById ('test'), mais jetez simplement ".setAttribute ('id",' nextstep '); "

J'espère que ça aide!

  

if (self.href! = "# #")

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

Évitez d’utiliser le nom "self", car il entre en conflit avec le nom de l’objet global (ou "fenêtre"). Vous pouvez éviter la maladresse de "self" en assignant le gestionnaire à partir de JavaScript:

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

au lieu de l'attribut onclick , vous pouvez utiliser "this" dans request (). request () doit également renvoyer false; pour que le lien ne soit pas suivi (le navigateur faisant défiler l'écran vers le haut). Le mieux serait d’utiliser un < bouton > (ou < input type = "bouton " > ), car c’est un bouton d’action et non un lien vous pouvez ouvrir dans une nouvelle fenêtre ou un favori. (Vous pouvez toujours utiliser CSS pour qu'il ressemble moins à un bouton.)

N'utilisez pas setAttribute () pour HTML, il présente des problèmes dans IE non liés à cet usage. La définition de element.id était déjà satisfaisante.

Mais tout cela semble plutôt étrange. Ce que vous voulez faire, en tout cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top