11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour
J'aimerais au chargement de ma page que l' id d'un élément se change, ici l' id SousMenu se change en "test" par exemple.
<ul id="SousMenu">
<li><a href="nature.asp">Nature</a></li>
</ul>
J' ai vu que l'on pouvait changer les class mais sur les id je ne trouve pas.
merci
merci pour l'indication.. mais en fait c 'est en javascript que j' aimerai que cela se fasse...
Mon menu est dans une "library" et pour ne pas refaire une autre library j 'aimerai que sur certaines pages l' id "SousMenu" soit changé dynamiquement au chargement de ma page avec l' aide de javascript.
<ul id="SousMenu">
<li><a href="nature.asp">Nature</a></li>
</ul>
Modérateur
C'est bien en Javascript que je te le proposais. Smiley cligne

Tu sélectionnes ton ul avec getElementById et tu affectes l'id "test" avec la propriété id de ton élément. Pour que ça se passe au chargement, tu déclenches ces actions sur l'événement load (ou onload si tu restes en DOM 0)
merci
Je cherche... mais j' avance pas bcp;

function changeId(ancienneId) 
{
	var id = document.getElementById(ancienneId);
	var id="nouvelleId";
}

cela ne fonctionne pas..
si tu peux me donner une piste de plus....
jluc Smiley biggrin
Modérateur
On se rapproche... Smiley ravi

Tu as appelé ta première variable id alors qu'en fait, tu détermines un élément ayant cet identifiant donc plutôt que de l'appeler id, tu pourrais par exemple le nommer oEl.

Lorsque tu veux lui affecter un nouvel identifiant, ce n'est pas une nouvelle variable qu'il faut créer mais plutôt définir une propriété de oEl.

En Javascript, on définit la propriété d'un objet comme suit :
objet.propriete = valeur;
merci

voilà mon nouveau code :

function changeId(id) 
{
	var element = document.getElementById("plan");
	this.id = "test";
}

Je n'ai aucunes erreurs mais rien ne se passe... peut être une dernière petite piste !!
jluc Smiley cligne
Modérateur
La fonction changeId a un argument id ; celui-ci devrait être passé en paramètre de document.getElementById sinon ça ne sert à rien de mettre un argument à ta fonction. Smiley cligne

Et puis, il vaut mieux éviter de passer par this car ce n'est jamais parlant (ici this représente window donc tu n'affectes pas l'id au bon élément). Change this.id par element.id et ça devrait aller mieux.
Cela marche !!!

function test(id) 
{
	var element = document.getElementById(id);
	element.id = "nouvel id";
}


sur ma page html l'apel javascript :

<script language="JavaScript" type="text/javascript">
test("id que je veux");
</script>

juste y 'a t'il un moyen de boucler le script : mon id se repète à deux endroits différent sur ma page html or le script ne remplace l'id qu 'une seule fois et ensuite il stoppe ...
sinon merci pour ton aide
jluc
Modérateur
a écrit :
mon id se repète à deux endroits différent sur ma page html
Ca, c'est invalide ; un identifiant ne peut apparaître qu'une seule fois sur une page donc il faut changer le second. Smiley cligne Néanmoins, vu que tu passes l'identifiant en argument de la fonction, rien ne t'empêche de te resservir de cette dernière pour un second identifiant.