GetElementById dans <div> imbriquées

jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008 - 23 févr. 2008 à 10:23
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 3 mars 2008 à 20:00
Bonjour,

j'ai un fichier xhtml comme ceci :

           
       

           
       

           
       

           

       
           
       

       
       

            

   

puis un fichier javascript dans lequel je veux faire ca par exemple :

document.getElementById("formu").innerHTML = "salut";

mais le debugger me dit :
document.getElementById("formu") has no properties




mais ce qui est bizarre c que j'arrive tres bien a acceder au "content" par document.getElementById("content") alors que lui
aussi est imbriqué dans
..

Pouvez vous m'aider??

13 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 10:43
Bonjour,

    du xml... enfin, si on veut, là on ne vois que du html

    et les balises   ? elles existent      si non : les mettre, c'est du à cela.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 10:48
oui les balises existent
voici tout le contenu XHTML (je n'ai dit a aucun moment XML)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" src="../javascript/formulaire.js"></script>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../impletion.css" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>

    

    
            
        

            
        

            
        

            

            
            
            

        
            
        

        
        

            
    
    
                    

</html>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 10:57
ah....
mais qu'y a-t-il dans le .js ?

parce que si je met

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function AfficheDocXML()
{    document.getElementById("formu").innerHTML="exemple";
}
</script>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../impletion.css" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>
   
   
           
       

           
       

           
       

           

           
           
           

       
           
       

       
       

           
   
   
                   

</html>

    ben... ça baigne ( testé uniquement avec FF et IE  )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 11:02
si  document.getElementById("formu").innerHTML="exemple";
    n'est pas dans une fonction, comme le navigateur interpréte en séquence, ligne par ligne,
    lorsque qu'il exécute, l'ID n'existe pas encore.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 févr. 2008 à 11:03
Salut, pour ton problème il serait bien de mettre le code qui se trouve dans le fichier javascript, sinon pour la remarque de bultez sur le XML, je pense qu'elle est lié au fait que tu ai dit XHTML : Xml and Hyper Text Markup Language, car le X de XHTML signifie XML ce qui veut dire que c'est un mélange de XML et de HTML et qu'il pense que ça ressemble plus a du HTML tout cour qu'a du XHTML !!!

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 11:09
dieu me tripote nicomville, tu as raison : définition xhmtl
     pour le contenu du .js aussi !
mais bon, c'est comme le questionneur le sent...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 11:11
Voici le contenu mais je sais pas si ca va t'aider..
le truc ce ke tout marche et kan je met la ligne rose en commentaire
tout ce passe normalement..

je c c bizarre!!





this.chargerContenu = function(language) {
        
        var uti = new Util();
        var xhrcontent = uti.createXHR();
        
        xhrcontent.open("GET","../xml/Formulaire.xml",true);
                
        xhrcontent.onreadystatechange=function() {
        
            if(xhrcontent.readyState == 4) {                    
                var doc = xhrcontent.responseXML;
                
                //Selection de la langue pour l'affichage du contenu du site
                //Cf. fichier Contenu.xml
                switch (language) {
                    case "fr" :
                    //Position sur langue "francais"
                        var lan = doc.getElementsByTagName("langue").item(0);
                        break;
                        
                    case "en" :
                    //Position sur langue "english"
                        var lan = doc.getElementsByTagName("langue").item(1);
                        break;            
                }
                                                
                //AFFICHAGE DU CONTENT
                //****************************************************
                //Nétoie le contenu du div avant son chargement
                document.getElementById("content").innerHTML = "";
                document.getElementById("formu").innerHTML = "tatatatatatatat";
                
                document.getElementById("content").innerHTML = "" +
                lan.getElementsByTagName("titre").item(0).firstChild.data + "
";
                    
                document.getElementById("content").innerHTML += "" +
                lan.getElementsByTagName("explication").item(0).firstChild.data + "

";
                
                for(var i=0;i<lan.getElementsByTagName("champ").length;i++) {
                   
                     //ce que je voudrais :
                    //



document.getElementById("formu").innerHTML




+= lan.getElementsByTagName("champ").item(i).firstChild.data;





                    document.getElementById("content").innerHTML += lan.getElementsByTagName("champ").item(i).firstChild.data;
                }
                
                
                //****************************************************
                                
            }
        };
        xhrcontent.send(null);        
    }   
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 11:13
                document.getElementById("formu").innerHTML = "tatatatatatatat";
               
relis ce que j'ai dit.
quand cette ligne est interprétée, exécutée, formu n'existe pas encore....



<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 11:19
XHTML n'est pas un mélange de XML et HTML
C'est comme du HTML mais se basant sur la SYNTAXE du XML avec de
nouvelle norme d'ecriture de balises a respecter c'est tout
donc tu n'aurais jamais pu voir du XML dans un fichier XHTML!

et la XHTML ne signifie pas XML and HTML je sais pas quoi
mais simplement eXtensible HyperText Markup Language..
0
jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 11:20
Ben comment je fais alors?

http://www.w3.org/TR/xhtml1/
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 févr. 2008 à 11:28
tu le fais après que l'élément soit défini...  

<hr size="2" width="100%" />       soit
...
<... id="formu"....
..
    ici on peut utiliser formu

    soit dans la fonction qui est appelée dans le onload du body, puisque
       elle sera exécutée lorsque la page aura été interprétée
       ( comme c'est montré aussi )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
jesus_is_my_homeboy Messages postés 6 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 11:40
Merci de ton aide
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
3 mars 2008 à 20:00
Bonjour à tous,
1st constat

 

 

donc le DIV formu appartient au DIV content

2nd constat
//Nettoie le contenu du div avant son chargement
document.getElementById("content").innerHTML = "";
donc a ce moment le
DISPARAIT

ce qui fait que l'appel
document.getElementById("formu").innerHTML = ...
devient illégal le DIV n'existant plus

;O)
0
Rejoignez-nous