Probleme sur document.createElement().id

[Résolu]
Signaler
Messages postés
16
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
4 juin 2007
-
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
-
Bonjour j'ai un souci en affectant id ou des evenements de souris.

je charge un fichier xml je traite les données ce qui va créer ma page HTML
sauf que je dois rajouter a ces éléments d'autre action JScript sur les div.

et quand je rajoute l'"ID" ou un evenement du type onclick il ne se passe rien.
voici le code merci de votre aide.

/* chargement du fichier XML */
function fichier_xml(){
        var nav = navigator.appName;
        var charger;
        var doc;
        if (document.all){
             doc = new ActiveXObject("Microsoft.XMLDOM");
            doc.async = false;
            charger = doc.load("fichier.xml");
            creation_page(doc);
        }else{
             doc = document.implementation.createDocument("","",null);
            doc.load("Base.xml");
            charger = doc.load("fichier.xml");
            doc.onload = function ()
            {
                creation_page(doc);
                document.close();
            }
        }
    }
/* creation de la page */
    function creation_page(doc){
        var HTML = document.getElementById("text").parentNode;
        var D = doc.getElementsByTagName("Table");
        var i = 0;
        var Haut = 0;
        for (i=0;i<D.length;i++){
            var Table = D[i];
            var Cadre = create_Table(Table,Haut);
            HTML.appendChild(Cadre);
            Haut = Haut + 70;
        }
        alert(HTML.innerHTML);
    }
    function create_Table(Table, Haut){
        var nom_table = Table.getAttribute("valeur");
        DIV = document.createElement("DIV");
        DIV.style.background = "white";
        DIV.style.position = "absolute";
        DIV.style.top = Haut + "px";
        DIV.style.left = "0px";
        DIV.appendChild(create_Titre(Table));
        DIV.appendChild(create_Champs(Table));
        return DIV;       
    }
   
    function create_Titre(Table){
        var nom = Table.getAttribute("nom");
        var titre = document.createElement("DIV");
        var ele_JS = document.createAttribute("OnMouseOver");
        ele_JS.nodeValue = window.alert('ok');
        titre.setAttributeNode(ele_JS);
        titre.appendChild(document.createTextNode(nom));
        return titre;
    }
   
    function create_Champs(Table){
       var _Champs = Table.childNodes;
       var DIV = document.createElement("DIV");
       for (i=0;i<_Champs.length;i++){
               var lecture =  _Champs[i];
            var BR = document.createElement("br");
               var ele = document.createElement("input");
            var ele_id = document.createAttribute("id");
            var nom = lecture.getAttribute("valeur");
            var Key = lecture.getAttribute("key");
            if ( Key == "N" ) {
                ele.type = "checkbox";
            }
            if ( Key == "K" ) {
                ele.name = "Key_" + nom;
            }
            ele_id.nodeValue = ""+nom+"";   
            ele.setAttributeNode(ele_id);
            //ele.setAttributeNode(ele_JS);
            DIV.appendChild(document.createTextNode(nom));
            DIV.appendChild(ele);
            DIV.appendChild(BR);
            alert(ele.id);
       }
       champs = DIV;
       return champs;
    }
  </script>

</head>

   
   

</html>

 

1 réponse

Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
6
Bonjour,

    - l'évenement onclick n'existe pas, il faut mettre onmousedown ( attention à la casse )
    - pour affecter un id, il suffit de créé l'élement et de faire ".id= ...."

un petit exemple :

          var div = document.createElement("div");
          // et c'est la que l'id est affecté :
          div.id = "Id_de_la_div_a_cliquer";
          div.onmousedown = function (){
                alert ( "vous avez cliqué sur " + this.id);
            }

j'ai pas tester par rapport à ton source car, n'ayant pas le fichier xml et ne sachant pas ce que ça doit faire...
Donc, à voir.

[o-_-o]