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 :

Numeroter une balise


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Numeroter une balise
    Bonjour
    J'aimerais bien que vous pm'aider.
    J'ai un document et je voudrais écrire une fonction en javascript qui parcourt ce document à la recherhce de tous les éléments H1.
    Pour chaque éléments H2 trouvés, il affiche dans une listre trié le nom du paragraphe.j'ai essayé avec de céer la fonction liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function liste()
    {
    var ol=document.createElement("ol");
    var listeh2=document.getElementsByTagName("h2");
    for (var i=0;i<listeh2.length;i++) 
    (je suis perdu à ce niveau, j'arrive pas à faire la liste qui affiche le résultata)
    }
    A partir de la je je sais plus quoi faire.

  2. #2
    Membre confirmé Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Par défaut
    salut

    quest-ce que tu entends par nom du paragraphe?serait-ce le contenu du h2?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut
    Citation Envoyé par landryx
    salut

    quest-ce que tu entends par nom du paragraphe?serait-ce le contenu du h2?
    .
    Par exemple si nous avons dans le document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <h2>Toto est la</h2>
    <h2>Toto est parti</h2>
    <h2>Titi est la</h2>
    Alors le résultat sera de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1.Toto est la
    2-Toto est parti.
    3.Titi est la

  4. #4
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Un essaie, codé à la volé (donc non-testé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function RechercherTag(type){
    	var resultat = "";
    	void(el=document.getElementsByTagName(type));
    	for(i=0;i<el.length;i++)
    		resultat += (i+1) + "." + el.innerHTML + "<br />";
     
    	return resultat;
    }
    document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    ^^ tiend moi au courrant si jamais ca fonctionne (sinon bah j'ai plus ou moins envie de le débugger à vrai dire...)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut
    Citation Envoyé par FMaz
    Un essaie, codé à la volé (donc non-testé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function RechercherTag(type){
    	var resultat = "";
    	void(el=document.getElementsByTagName(type));
    	for(i=0;i<el.length;i++)
    		resultat += (i+1) + "." + el.innerHTML + "<br />";
     
    	return resultat;
    }
    document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    ^^ tiend moi au courrant si jamais ca fonctionne (sinon bah j'ai plus ou moins envie de le débugger à vrai dire...)
    Bonsoir
    non ce ne marche pas, il ne m'affiche pas les titre des éléments H2.
    d'autres part comment faire pour lister les résultats sous formes de liste ordonnées numérotées?

  6. #6
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function RechercherTag(type){
    	var resultat = "";
    	var el=document.getElementsByTagName(type);
    	for(i=0;i<el.length;i++) {
    		resultat += (i+1) + ". " + el[i].innerHTML + "<br />";
    	}
    	return resultat;
    }
    document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    Et comme ca ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Re
    Citation Envoyé par FremyCompany
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function RechercherTag(type){
    	var resultat = "";
    	var el=document.getElementsByTagName(type);
    	for(i=0;i<el.length;i++) {
    		resultat += (i+1) + ". " + el[i].innerHTML + "<br />";
    	}
    	return resultat;
    }
    document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    Et comme ca ?
    Bonjour
    non, il me met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    à la valeur Nulle ou n'est pas un objet

  8. #8
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Est ce qu'il existe dans ton HTML (et avant ce script) une balise qui a 'div_resultat' pour ID ???

    sinon ajoute ceci avant le script :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id='div_resultat'></div>

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Re
    Citation Envoyé par FremyCompany
    Est ce qu'il existe dans ton HTML (et avant ce script) une balise qui a 'div_resultat' pour ID ???

    sinon ajoute ceci avant le script :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id='div_resultat'></div>
    Oui.
    Je te fais une copie de mon html

    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
     
     
    <!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>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <meta name="author" content="tentacukle" />
        <meta name="date" content="13/11/2005" />
        <meta name="sequence" content="sequence" />
        <title>Le titre</title>
    	<script>
    	function RechercherTag(type){
    	var resultat = "";
    	var el=document.getElementsByTagName(type);
    	for(i=0;i<el.length;i++) {
    		resultat += (i+1) + ". " + el[i].innerHTML + "<br />";
    	}
    	return resultat;
    	}
    	document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
    	</script>
    <meta name="generator" content="namo webeditor(trial)" />
    </head>
    <div id="div_resultat">
    <script language="javascript" type="text/javascript">
     alert(RechercherTag("H2"));
     </script>
    </div>
     <h1>Titre principal</h1>
     <h2>Premier paragraphe</h2>
     <p>bla, bla, bla...</p>
     <h2>Deuxième paragraphe</h2>
     <p>bla, bla, bla...</p>
    </body>
    </html>

  10. #10
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Non, au momment ou le script s'exécute, le div n'existe pas encore...

    Il faut mettre ce scritp JUSTE AVANT la balise de fermeture </body>

    Correction :
    Code HTML : 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
     
    <!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>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <meta name="author" content="tentacukle" />
        <meta name="date" content="13/11/2005" />
        <meta name="sequence" content="sequence" />
        <title>Le titre</title>
    <meta name="generator" content="namo webeditor(trial)" />
    </head>
    <div id="div_resultat">
    </div>
     <h1>Titre principal</h1>
     <h2>Premier paragraphe</h2>
     <p>bla, bla, bla...</p>
     <h2>Deuxième paragraphe</h2>
     <p>bla, bla, bla...</p>
    <!--
        Ne rien mettre en dessous de ce commentaire, si ce n'est le script
    -->
    	<script><!--
            function RechercherTag(type){
            var resultat = "";
            var el=document.getElementsByTagName(type);
            for(i=0;i<el.length;i++) {
                    resultat += (i+1) + ". " + el[i].innerHTML + "<br" + " />"; //<!--
            }
            return resultat;
            }
            document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
            --></script>
    </body>
    </html>

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Re
    Citation Envoyé par FremyCompany
    Non, au momment ou le script s'exécute, le div n'existe pas encore...

    Il faut mettre ce scritp JUSTE AVANT la balise de fermeture </body>

    Correction :
    Code HTML : 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
     
    <!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>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <meta name="author" content="tentacukle" />
        <meta name="date" content="13/11/2005" />
        <meta name="sequence" content="sequence" />
        <title>Le titre</title>
    <meta name="generator" content="namo webeditor(trial)" />
    </head>
    <div id="div_resultat">
    </div>
     <h1>Titre principal</h1>
     <h2>Premier paragraphe</h2>
     <p>bla, bla, bla...</p>
     <h2>Deuxième paragraphe</h2>
     <p>bla, bla, bla...</p>
    <!--
        Ne rien mettre en dessous de ce commentaire, si ce n'est le script
    -->
    	<script><!--
            function RechercherTag(type){
            var resultat = "";
            var el=document.getElementsByTagName(type);
            for(i=0;i<el.length;i++) {
                    resultat += (i+1) + ". " + el[i].innerHTML + "<br" + " />";
            }
            return resultat;
            }
            document.getElementById('div_resultat').innerHTML = RechercherTag("H2");
            --></script>
    </body>
    </html>
    Dis je débute en javascript et je pensais qu'il fallait toujours mettre le script dans l'entête.

  12. #12
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par foxrol
    Dis je débute en javascript et je pensais qu'il fallait toujours mettre le script dans l'entête.
    Non, c'est une fausse idée.
    Tu peux mettre ton code ou tu veux

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Re
    Citation Envoyé par FremyCompany
    Non, c'est une fausse idée.
    Tu peux mettre ton code ou tu veux
    Ok.
    mais pkoi dans ce cas précis, si je le mets dans le head il ne fonctionne plus?

  14. #14
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par foxrol
    Ok.
    mais pkoi dans ce cas précis, si je le mets dans le head il ne fonctionne plus?
    Par ce que au momment ou ton script est exécuté, tout ce qui ce trouve en dessous n'existe pas encore !
    donc il n'y a pas de balise body, pas de div "div_resultat", pas de h2, ...
    ==>Le script ne marche pas

  15. #15
    Membre confirmé Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Par défaut
    Citation Envoyé par foxrol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function liste()
    {
    var ol=document.createElement("ol");
    var listeh2=document.getElementsByTagName("h2");
    for (var i=0;i<listeh2.length;i++) 
    (je suis perdu à ce niveau, j'arrive pas à faire la liste qui affiche le résultata)
    }
    A partir de la je je sais plus quoi faire.
    je crois qu'en rajoutant ceci à ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    var ol=document.createElement("ol");
    var listeh2=document.getElementsByTagName("h2")
    for (var i=0;i<listeh2.length;i++) {
     
      var toto=listeh2.firstChild;//on recupere le contenu de h2(le texte)
      var nouveauLI = document.createElement("li");
      nouveauLI.appendChild(toto);
      ol.appendChild(nouveauLI);
    }
    //-->
    ça devrait marché...

  16. #16
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Meme si l'appel à la fonction est clairement fait APRÈS le début du body, le navigateur parse la totalité du script avant même de respecter l'ordre d'exécution ?

  17. #17
    Membre confirmé Avatar de landryx
    Inscrit en
    Décembre 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 145
    Par défaut
    j'ai pas compris la question?? ..

  18. #18
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Bah par rapport à l'exemple de code donné et au commentaire suivant:

    Citation Envoyé par FremyCompany
    Non, au momment ou le script s'exécute, le div n'existe pas encore...

  19. #19
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par FMaz
    Meme si l'appel à la fonction est clairement fait APRÈS le début du body, le navigateur parse la totalité du script avant même de respecter l'ordre d'exécution ?
    Un code exécuté dans le flux (pas d'évent, de timer, ...) se fait dans le flux et bloque la suite de parsage HTML... (pour permettre les document.write et tout ca)

Discussions similaires

  1. [XSL] insérer une balise <a name>
    Par guibong dans le forum XMLRAD
    Réponses: 2
    Dernier message: 01/08/2003, 15h04
  2. Position d'une balise dans un document externe
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/07/2003, 02h56
  3. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34
  4. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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