IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

comment reconnaitre le type d'objet


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut comment reconnaitre le type d'objet
    bonjour a tous
    comment reconnaitre le type d'un objet
    je m'explique
    je fait une boucle sur un formulaire et j'aimerais pouvour reconaitre les objets qui sont a l'interieur mais je ne sais pas comment mis prendre
    pour une plus grande comprehention voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function getform(){
    	var nodform = document.getElementsByTagName("form")[0];
    	for(i=0;i<nodform.childNodes.length;i++){
    		if(nodform.childNodes[i].tagName=="input"){alert('s');}// c'est ici que ca coince !!!
    		document.write(nodbody.childNodes[i]);
    	}
    }
    si l'un d'entre vous peut m'aider merci

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    évite document.write pour afficher un résultat. J'ai amélioré le test, et j'affiche le résultat dans un div (dont l'id est idDiv).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function getform()
    {
        var divOut = document.getElementById("idDiv");
     
        var nodform = document.getElementsByTagName("form")[0];
        var noeud;
     
       for(i=0;i<nodform.childNodes.length;i++)
        {
            noeud = nodform.childNodes[i];
     
            if (typeof(noeud)=="object")
            {
              if(noeud.tagName)
              {
                if(noeud.tagName.toLowerCase()=="input")
                    alert('s');
              }
            }
    	divOut.innerHTML = divOut.innerHTML + noeud.tagName +"<br>";
        }
    }

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    genial c'est exactement ca
    mais pour aller plus loin j'aurais besoins de retrouver les attributs pour les reecrire seulement attributesName existe pas (ou je l'ai pas trouver)
    peu tu encore m'aider pour ca et pendant que je te tien pourrais tu me dire comment recuperer les noeux text merci mille fois

  4. #4
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    j'ai tenter un truc comme ca mais aucun succes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(noeud.tagName)
              {
                if(noeud.tagName.toLowerCase()=="input")
    				for (z=0;z<noeud.attributes.length;z++){
    					attrib+=noeud.attributes[z];
    				}
                    alert(noeud.tagName.toLowerCase()+attrib);
              }

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Quels genres d'attributs veux-tu récupérer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var prop="", p;
    if(noeud.tagName)
              {
                if(noeud.tagName.toLowerCase()=="input")
                {
    				for (p in noeud)  //noeud.style
                                    {
    					prop = prop+" ; "+p;
    				}
                 }
                  alert(noeud.tagName.toLowerCase()+"\n"+prop);
              }

    pour les noeuds texte, je ne sais pas. Que cherches-tu à faire précisément ? Pourquoi cette fonction ?

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    en fait je cherche a ajouter des lignes dans un formulaire
    je me rend compte maintenant que c'etait peutetre pas la bonne methode
    une ligne comporte plusieur input et selecte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <form action="" method="post">
    	<input name="div" type="text" /> id div 
    	<input name="width" type="text" class="inputpx" /> width 
    	<input name="height" type="text" class="inputpx" /> height
    	<select name="position">
    		<option value=""></option>
    		<option value="absolute">absolute</option>
    		<option value="fixed">fixed</option>
    		<option value="inherit">inherit</option>
    		<option value="relative">relative</option>
    	</select> position  
    	<input name="top" type="text" class="inputpx" /> top 
    	<input name="left" type="text" class="inputpx" /> left
    	<input name="text" type="text" /> text
    	<input name="checkmore" type="checkbox" onclick="getform();" /><br />
    	<input name="creer" type="submit" value="creer" />
    </form>
    je voulais pouvoir placer les nouvelles lignes au dessus du submit puis d'ajouter le checkbox uniquement a la derniere ligne

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Un lien pour les textNode :

    http://javascript.developpez.com/faq...DOM#DOMajouter


    Le code n'est pas complet mais je pense qu'il peut grandement t'avancer, j'ai remplacer la checkbox par un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    /** Auteur du script : 'Auteur' (www.developpez.com) **/
     
    function addLigne(obj)
    {
      var i;
      var elForm = document.getElementById("idFormulaire");
     
      /*** Creation des input ***/
      var elInput = new Array();
      for (i=0;i<6;i++)
      {
         elInput[i] = document.createElement("input");
         elInput[i].type = "text";
         //elInput[i].name="";
         //elInput[i].id="";
      }
     
      /*** Creation des textNode ***/
      var elTxt = new Array();
      var tabTxt = new Array(" id Div "," Width "," Height "," Position "," Top "," Left "," Texte ");
     
      for (i=0; i<tabTxt.length; i++)
      {
         elTxt[i] = document.createTextNode(tabTxt[i]);
      }
     
      /*** Creation de la liste et de ses options ***/
      var elSelect = document.createElement("select");
      //elSelect.name="";
      //elSelect.id="";
     
      /*** Creation des options ***/
      /*** syntaxe : Option("Text","Value",false,false); ***/
      var elOption = new Array(
                              new Option("","",false,false),
                              new Option("absolute","absolute",false,false),
                              new Option("fixed","fixed",false,false),
                              new Option("inherit","inherit",false,false),
                              new Option("relative","relative",false,false)
                              );
     
      /*** Insertion des input et des textes dans le document (1ere partie) ***/
      for (i=0;i<3;i++)
      {
          elForm.insertBefore(elInput[i], obj.parentNode);
          elForm.insertBefore(elTxt[i], obj.parentNode);
      }
     
      /*** Insertion du select dans le document ***/
      /*** Attention IE : il faut inserer le select dans le document avant d ajouter
      **** les options ***/
      elForm.insertBefore(elSelect, obj.parentNode);
      for (i=0;i<elOption.length;i++)
      {
         elSelect.options.add(elOption[i]);
      }
      elForm.insertBefore(elTxt[3], obj.parentNode);
     
      /*** Insertion des input et des textes dans le document (2eme partie) ***/
      for(i=3;i<6;i++)
      {
          elForm.insertBefore(elInput[i], obj.parentNode);
          elForm.insertBefore(elTxt[i+1], obj.parentNode);
      }
     
      /*** Ajout de sauts de lignes ***/
      elForm.insertBefore(document.createElement("br"), obj.parentNode);
      elForm.insertBefore(document.createElement("br"), obj.parentNode);
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
    <form id="idFormulaire" action="" method="post">
    	<input name="div" type="text" /> id div 
    	<input name="width" type="text" class="inputpx" /> width 
    	<input name="height" type="text" class="inputpx" /> height
     
    	<select name="position">
    		<option value=""></option>
    		<option value="absolute">absolute</option>
    		<option value="fixed">fixed</option>
    		<option value="inherit">inherit</option>
    		<option value="relative">relative</option>
    	</select>position
     
    	<input name="top" type="text" class="inputpx" /> top 
    	<input name="left" type="text" class="inputpx" /> left
    	<input name="text" type="text" /> text
    	<br><br>
     
      	<div>
        <br />
        <input value="Ajouter un élément" name="checkmore" type="button" onclick="addLigne(this);" /><br />
        <br />
        </div>
     
    	<input name="creer" type="submit" value="creer" />
    </form>
     
     
    </body>
     
    </html>

  8. #8
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    merci mille fois
    vraiment tu assure
    avec ce que tu a fait j'ai pu treminer encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment modéliser des types d'objet ?
    Par stackpuke dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2009, 15h51
  2. Comment reconnaitre le type de clavier (API windows)
    Par moulydi dans le forum Débuter
    Réponses: 8
    Dernier message: 08/07/2009, 15h58
  3. comment reconnaitre le type de donnes ?
    Par donyas dans le forum Langage
    Réponses: 5
    Dernier message: 22/03/2007, 23h03
  4. [POO] Comment connaître le type d'un objet
    Par zizou39 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2005, 09h46
  5. Comment detecter le type d'un objet?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2003, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo