La modification de la valeur de “id=” avec le document.getElementById
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 veux id="test" pour changer d'id="nextstep" si les demandes = 0.
- Quel navigateur utilisez-vous?
- Qui doctype utilisez-vous?
- Safari 4, que j'ai testé dans les autres aussi, et cela n'a pas fonctionné?
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- Vous pouvez regarder la webkit.org/blog/68/understanding-html-xml-and-xhtml, comme xhtml 1.0 est différent de html 4. Vous pouvez trouver le html 4 pour être mieux. Pour en savoir plus sur le setAttribute et pourquoi il ne peut pas avoir travaillé, vous pouvez regarder reference.sitepoint.com/javascript/Element/setAttribute
- Cela peut être fait avec jQuery? Comme je suis déjà à l'aide de jQuery, qui pourrait rendre plus facile, et de le faire fonctionner?
- Je suggère de regarder ma réponse sur votre question pour une manière complètement différente de la résolution de votre problème sans avoir à ajuster la hrefs et id -- simplement en ajoutant/supprimant des gestionnaires en fonction de l'état de l'application.
- Pourquoi voudriez-vous jamais eu envie de changer la valeur de l'id?
- excellente question. peut être utilisé pour modifier dynamiquement certains comportements d'une classe de cant. bravo UPVOTED 🙂
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer:
setAttribute
(à moins que nous parlons de XML DOM)element.id = 'nextstep'
devrait être suffisant dans ce cas.C'est exactement comment vous pouvez aller sur le faire, aussi longtemps que vous l'envelopper dans des balises de script...
Si vous êtes en essayant de déclencher ce sur le clic de ce point d'ancrage, puis vous pouvez utiliser:
EDIT: Bien vous avez modifié le contenu de votre question après que j'ai posté ce...
Vous devez utiliser l'option "setAttribute' pour modifier l'ID de la balise d'ancrage.
Vous avez la getElementById('test') de la partie de droite, mais il suffit de jeter ".setAttribute('id','nextstep');"
Espère que ça aide!
Il est votre problème. Lien hrefs sont canonicalised 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.
Éviter d'utiliser le nom de "soi", comme cela entre en conflit avec le nom de l'objet global (aka "fenêtre"). Vous pouvez éviter d'être maladroit en passant de ‘soi’ en attribuant le gestionnaire de JavaScript:
au lieu de la
onclick
attribut, vous pouvez vous servir de cette demande(). demande() devrait égalementreturn false;
pour arrêter le lien de suivi (faire le navigateur de défilement vers le haut). Encore mieux serait d'utiliser un<button>
(ou<input type="button">
), parce que c'est un bouton d'action et non pas un lien que vous pouvez ouvrir dans une nouvelle fenêtre ou un signet. (Vous pouvez toujours utiliser les CSS pour le faire paraître moins comme un bouton.)Ne pas utiliser setAttribute() pour le HTML, il y a des problèmes dans IE sans rapport avec cette utilisation. Réglage
element.id
était déjà très bien.Mais tout cela semble plutôt une étrange façon d'aller sur ce que vous voulez faire dans tous les cas.