[Débutant] Changer la classe en fonction du numéro d'ordre d'un élément

Signaler
Messages postés
4
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
26 avril 2007
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour, je précise que je m'y connais encore peu... Voilà, j'ai un script pour ajouter des éléments avec un innerHTML, et je voudrais changer la classe de ceux-ci lorsque l'utilisateur en crée un nombre supérieur à 1 (ou ici, 0 suivant la numérotation des éléments). Pour créer les éléments, pas de problème, mais comment récupérer leur numéro d'ordre ? La propriété length est pourtant bien la bonne ?? (en plus il me reste d'autres problèmes à résoudre, mais c'est pour plus tard )

 <script  type="text/javascript">
        function copyElement( str_copy, pjliste02 )
        {
          // Je récupère la div : //
            var list = document.getElementById('pjliste02');
          // Je définis l'élément (un nouveau lien) à ajouter dans la div //
            var linea = list.appendChild(document.createElement('a'));
          // Je définis sa classe pour un bô design CSS : //
            linea.className = "ligne1";
            linea.innerHTML = str_copy;
            linea.href = "#";
          // Ici, je tente de tester son numéro d'ordre : //
            var i = linea.length;
                if (i > 0) {
                alert ("1");}
        };
        function special_M() { copyElement( document.pullpj.pj02.value )
            }
</script>

<form name="pullpj">
     
     
</form>

               

               

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

    document.getElementById("pjliste02").hasChildNodes()
    dit s'il existe des enfants. ( false au 1er ajout, true après )
    par exemple...

    car il doit bien exister 265 manières de faire :
    _ une variable globale qu'on incrémente à chaque appel
    _ ...

    sans avoir testé si le script donné fonctionne.

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
B
onjour à tous...
parmis les 256 manières de faire il y a

  // Ici, je tente de tester son numéro d'ordre : //
  var Obj = list .getElementsByTagName('a');
  var Num = Obj.length;

Il est important de récuperer sur l'objet list, le DIV en fait, et non sur l'élément linea qui ne posséde pas de length.
;0)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
salut PetoleTeam,    longtemps qu'on ne s'était croisé.
j'ai écrit 265, je n'avais pas compté la tienne. 266 donc.
<hr />


Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
26 avril 2007

Ouééééé ! Ca marche !

Merci beaucoup pour vos réponses rapides. :)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Tiens mon dyslexisme, d'ailleurs pas sur que ce mot existe, va apparaître au grand jour, flute et crottes, je parle de champagne et de chocolat bien sur...
PS: peut de temps en ce moment pour le forum, ni pour le reste d'ailleurs...
;0)