Je modifie l'ID d'un côté client de l'élément HTML div
avec JavaScript. Le code suivant fonctionne correctement dans Internet Explorer mais pas dans Firefox/2.0.0.20. Il fonctionne dans les versions plus récentes de Firefox.
document.getElementById('one').id = 'two';
Quelqu'un peut-il me dire:
Pour clarifier, je change l'ID d'élément pour référencer un style différent dans une feuille de style externe. Le style est appliqué dans IE mais pas dans FF.
Cela fonctionne dans Firefox (, y compris 2.0.0.20
). Voir http://jsbin.com/akili (ajoutez /edit
à l'url à modifier):
<p id="one">One</p>
<a href="#" onclick="document.getElementById('one').id = 'two'; return false">Link2</a>
Le premier clic change le id
en "two"
, les erreurs du deuxième clic parce que l'élément avec id="one"
maintenant introuvable!
Peut-être que vous avez déjà un autre élément avec id="two"
(FYI vous ne pouvez pas avoir plus d'un élément avec le même id
).
Cela semble aller pour moi:
<html>
<head><style>
#monkey {color:blue}
#ape {color:purple}
</style></head>
<body>
<span id="monkey" onclick="changeid()">
fruit
</span>
<script>
function changeid ()
{
var e = document.getElementById("monkey");
e.id = "ape";
}
</script>
</body>
</html>
Le comportement attendu est de changer la couleur du mot "fruit".
Peut-être que votre document n'était pas entièrement chargé lorsque vous avez appelé la routine?
Vous pouvez modifier le id
sans avoir à utiliser getElementById
Exemple:
<div id = 'One' onclick = "One.id = 'Two'; return false;">One</div>
Vous pouvez le voir ici: http://jsbin.com/elikaj/1/
Testé avec Mozilla Firefox 22 et Google Chrome 60.0