Partage
  • Partager sur Facebook
  • Partager sur Twitter

les nodes en JavaScript

Sujet résolu
    12 mars 2009 à 15:02:41

    Salut les amis Zéros

    je cherche comment mettre des attributs en javascript à un noeud enfant

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2009 à 17:54:02

      J'ai rien compris... tu veux accéder aux nœuds enfants ou bien savoir modifier les attributs d'un nœud ?

      Dans le premier cas il te faut utiliser firstChild, childNodes et lastChild.

      Dans le deuxième cas tu as juste à faire noeud.attribut = 'ce_que_je_veux'; ou alors utiliser setAttribute() et removeAttribute().
      • Partager sur Facebook
      • Partager sur Twitter
        12 mars 2009 à 19:44:04

        merci Nesquik69

        oui je veux ajouter un evenement à un noeud .
        Par exemple le clique sur un element d'une liste .

        si vous pouvez me mettre un exemple complet ça sera mieux :p
        merci

        • Partager sur Facebook
        • Partager sur Twitter
          12 mars 2009 à 20:44:00

          Tu pourrais pas détaillé un peu plus? Oo

          [HS: Pour plus de précision, il faut demander à nod_]
          Ok je sors.
          • Partager sur Facebook
          • Partager sur Twitter
            12 mars 2009 à 21:11:32

            Citation : Noobs_

            oui je veux ajouter un evenement à un noeud .
            Par exemple le clique sur un element d'une liste .


            On va donc prendre le cas d'un évènement onclick :

            var target = document.getElementById('element');
            
            target.onclick = function() {
              // Le code à exécuter...
            };
            


            Rien de plus compliqué. Bon, là je n'ai présenté que la technique DOM-0, je t'invite à te rendre ici pour en voir plus sur les évènements (le tuto peut paraître un peu complexe à première vue mais si tu fais quelques recherches sur Internet alors ça ira ;) ).
            • Partager sur Facebook
            • Partager sur Twitter
              12 mars 2009 à 21:14:56

              par exemple Dans Ce Code:

              function readData(oData) {
              	var nodes = oData.getElementsByTagName("soft");
              	var ol = document.createElement("ol"), li, cn;
              	
              	for (var i=0, c=nodes.length; i<c; i++) {
              		li = document.createElement("li");
              		cn = document.createTextNode(nodes[i].getAttribute("name"));
              		
              		li.appendChild(cn);
              		ol.appendChild(li);
              	}
              	
              	document.getElementById("output").appendChild(ol);
              }
              


              Je veux ajouter aux <li> un evenement onClick="maFonction();" et un attribut id
              • Partager sur Facebook
              • Partager sur Twitter
                12 mars 2009 à 21:20:36

                function readData(oData) {
                	var nodes = oData.getElementsByTagName("soft");
                	var ol = document.createElement("ol"), li, cn;
                	
                	for (var i=0, c=nodes.length; i<c; i++) {
                		li = document.createElement("li");
                		li.id = 'mon_id';
                		li.onclick = maFonction;
                		cn = document.createTextNode(nodes[i].getAttribute("name"));
                		
                		li.appendChild(cn);
                		ol.appendChild(li);
                	}
                	
                	document.getElementById("output").appendChild(ol);
                }
                
                • Partager sur Facebook
                • Partager sur Twitter
                  12 mars 2009 à 21:37:25

                  Merci Nesquick69.

                  Tu sais quoi j'ai essayer mais ça marche pas :-°
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 mars 2009 à 21:43:58

                    Il faut bien sûr créer une fonction maFonction()... avec dedans les actions à réaliser lors du clic...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 mars 2009 à 21:50:17

                      ok oui biensur j'ai créer la fonction

                      Voici Mon Code

                      function GetData(dta)
                      {
                      	
                      	var nodes = dta.getElementsByTagName("soft");
                      	var ol = document.createElement("ol"), li, cn,ide;
                      	
                      	for (var i=0, c=nodes.length; i<c; i++) {
                      		li = document.createElement("li");
                      		cn = document.createTextNode(nodes[i].getAttribute("name"));
                      		ide = document.createTextNode(nodes[i].getAttribute("id"));
                      		li.id = ide;
                      		
                      		li.onclick = Modifier(ide,this,'name','texte');
                      		li.appendChild(cn);
                      		ol.appendChild(li);
                      
                      	}
                      		document.getElementById("maGrille").replaceChild(ol, document.getElementById("maGrille").firstChild);
                      		
                      }
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 mars 2009 à 21:58:19

                        Forcement que ca marche pas. Tu éxécute la fonction au lieu de l'ajouter comme événement.
                        Faut faire ça :
                        li.onclick = function() { Modifier(this.id,this,'name','texte'); };
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 mars 2009 à 21:59:43

                          li.onclick = Modifier(ide,this,'name','texte');
                          

                          Houlà, je comprends pourquoi ça foire ^^ .

                          Bref, tu ne peux pas écrire un appel à une fonction de cette façon, soit tu fais comme ceci :

                          li.onclick = Modifier;
                          


                          ou alors de cette façon :

                          li.onclick = function() {
                            Modifier(ide,this,'name','texte');
                          };
                          


                          Pourquoi ? Eh bien pour la première solution c'est parce que si tu mets les parenthèses après le nom de ta fonction alors celle-ci va s'exécuter directement et le onclick contiendra alors ce que la fonction a renvoyé au lieu de contenir la fonction à exécuter.
                          Dans ton cas, c'est la deuxième solution la plus efficace car tu dois passer des arguments, pour cela on crée donc une fonction anonyme dans l'évènement onclick et on y met dedans l'appel de ta fonction.

                          C'est un peu tordu à comprendre au début, hésite pas si tu as des questions.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 mars 2009 à 22:09:11

                            Merci les amis Zéro pour votre aide.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            les nodes en JavaScript

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown