Changer un id avec this [Résolu]

Signaler
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous,

Bon déjà je tiens à dire que je me sens très conne de poser cette question mais là je me prend la tête depuis ce matin et je comprend pas. (alors c'est interdit de se moquer de moi )
J'ai un bouton

ET la fonction do_something(button) {
.
.
.
button.id = "nouvel_id";
button.onclick = fonction () {do_something_else(this); };
.
.
}

Ça parait con comme ça.. et ben d'après firebug l'id ni le onclick ne changent et la console javascript ne dit rien, si je fais
document.getElementById("add_teams").id = "nouvel_id"; ça fonctionne mais la c'est completement débile étant donné que mon id c'est une variable...
La fonction s'execute normalement jusqu'à la fin mais pourquoi tan de haine???!!!

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)

8 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
je n'ai probablement pas compris ce que tu veux faire maelob
( mais pourquoi "réaffecter" le onclick ? )



<script>
function do_something(obj)
{ alert(obj.id);
obj.id="toto";
}
</script>

voir



et tout baigne, non ?
( testé uniquement avec FF3, mais ça doit baigner partout )
@+
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Je fais passer l'id en parametre de ma fonction ça m'embête mais je vois pas pourquoi ça déconne.

Merci quand même mon cher ami.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
un exemple alors où on change les paramètres et leur nombre ?

<script>
function do_something()
{     var tmp="";
    for ( var n=0; n < arguments.length; n++)
    {    tmp+="\r\n"+n+":"+(arguments[n]);    }
    alert(tmp);
    arguments[0].onclick=function()
    {    do_something(this,'b1','b2','b3');    }
}
</script>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
La c'est un exemple simplifié en faite c'est pour changer des arguments dans le onclick.
Enfin bref reprenons ton exemple
alert (obj) ---> [object HTMLInputElement] la ça baigne
alert (obj.id) ---> undefined
Je comprend pas...

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Si j'utilise getAttribute('id') ou bien plutôt même setAttribute()
J'obtiens setAttribute is not a function...

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Non le problème n'est pas la le problème venait d'un objet (ici un bouton) sur lequel je ne pouvait pas changer les attributs... (je devais changer le onclick et l'id) quand je faisait alert de l'objet j'avais bien objet html... mais si je faisais alert objet.value ou objet.name ou quoi que ça soit d'autre c'était undedifined et c'est ça que je comprenais pas...

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Mais en tout cas je savais pas qu'on pouvait parcourir les arguments d'une fonction.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
navré alors maelob... j'ai rien compris....
mais si tu as réolu  : nickel.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]