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 :

Récupérer valeurs d'une ligne ajoutée automatiquement dans un tableau


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Récupérer valeurs d'une ligne ajoutée automatiquement dans un tableau
    Bonsoir à tous;
    Je m'excuse avant tt pour les mauvais post car je suis débutante sur le forum et je ne maîtrise pas encore tout.

    Je serai ravi d'obtenir de l'aide sur Ajax ou sur javascript car je ne sais exactement où poster mon msg.

    En faite jai un formulaire qui se présente ainsi pour faire cout:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form name="form2" method="post" action="">
          <table id="idTable" align="center">
                <tr>
                    <td width="15%">
                        <textarea name="sizepopulation" id="sizepopulation" rows="1" cols="15" ></textarea>
                    </td>
     
                     <td width="10%">
                           <input type='button' name='add' value='Add' onclick='insererLigne_Fin()'/>
                     </td>
                      </tr>
              </table>
    </form>

    Après cela jai créer la fonction insererLigne_Fin() qui se présente comme suit.

    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
    function insererLigne_Fin()
    {
        var cell, ligne;
     
         // je récupère l'identifiant (id) de la table qui sera modifiée
        var tableau = document.getElementById("idTable");
        var nbLignes = tableau.rows.length;
        ligne = tableau.insertRow(-1); // ici création d'une ligne pour ajout en fin de table
        cell = ligne.insertCell(0);
        cell.innerHTML = " <textarea name='sizepopulation' id='sizepopulation' rows='1' cols='15' ></textarea>";
        cell = ligne.insertCell(1);
        cell.innerHTML = " <input type='button' name='add' value='Add' onclick='insererLigne_Fin()' />";
     
    	var ch_size = document.getElementById("sizepopulation").value;
            alert('Derniere valeur: '+ ch_size);
     
    }

    Jusque là ouaaoooo, tout marche , ma ligne s'ajoute, mon onclick parfait.
    Alors vous vous demandez peut être mon probleèm; justement c'est ici que commence mon calvaire
    Je veux en effet chaque fois que je clique sur bouton 'Add ' recupérer vleurs saisies dans les différents champs, donc valeur de la ligne courante. Mais mon script ne me retourne que les valeurs de la première ligne du tableau. Je ne sais pourquoi mais c'est comme s'il n'arrive pas à se positionner sur la dernière ligne ajoutée.
    SVP AIDEZ MOI JE SOUFFRE DEPUIS DES SEMAINES. Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    id='sizepopulation'
    Un id doit être unique .

    A+.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    une ID DoIt UNIQUE
    ... dans ton cas à chaque fois que tu ajoutes une ligne tu crées une nouvelle TEXTAREA qui possède une ID déjà existante <textarea name='sizepopulation' id='sizepopulation'>.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut une ID DoIt UNIQUE
    Merci de vous occupez de mon cas.
    une ID DOIt ETRE UNIQUE: d'accord, mais comment je fais dans ce cas puisque je dois forcément attribuer un id au nouveaux texearea créés. Sinon comment les identifier.

    Je précise que mon problème c'est de récupérer les dernières valeurs saisies et de les enregistrer plus tard dans une base de donnée.

    A+

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu peux indexer l'id en l'incrémentant à chaque ajout d'une nouvelle ligne et tu passes cet index en paramètre de la fonction.

    A+.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut incrémenter id automatiquement
    C'est justement ce que je vien de faire et mon probleme demeure à ce niveau:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td width="15%">
        <textarea name="sizepopulation" id="?????" rows="1" cols="15" ></textarea>
    </td>
    JE n'arrive pas à affecter la variable déclarée dans la fonction javascript.
    Pour être claire voilà ce que jai fait dans ma fonction insererLigne_fin():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newVar= "sizepopulation"+nbLignes;
    cell = ligne.insertCell(0);
        cell.innerHTML = " <textarea name='sizepopulation' id='"+ newVar+"' rows='1' cols='15' ></textarea>";
    Et maintenant pour recupérer la valeur saisie j'ai modifié le code comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ch_size = document.getElementById(newVar).value;
            alert('Derniere valeur: '+ ch_size);
    .

    ET TOUJOURS RIEN

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    nbLignes doit être une variable globale et incrémenté à chaque fois. Tu n'as rien dans ton alert car ton textarea vient d'être créé et il est encore vide au moment ou tu faits l'alert.

    A+.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut nbLignes comme variable globale
    Je ne comprend pas grand chose à ce dernier message. Pourriez vous être plus précis.

    Je vous en prie

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Citation Envoyé par andry.aime Voir le message
    nbLignes doit être une variable globale et incrémenté à chaque fois. Tu n'as rien dans ton alert car ton textarea vient d'être créé et il est encore vide au moment ou tu faits l'alert.

    A+.
    Il n'est pas nécessaire que nbLignes soit une variable globale. Dans son script nbLignes est calculé à chaque appelle à la fonction insererLigne_Fin() grace à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nbLignes = tableau.rows.length;

    Ensuite pour tenter de faire simple, il faut obligatoirement que quelque chose dise à ta fonction "Hey je suis sur la ligne 3, regarde le textarea avec l'id sizepopulation3"
    Tu peux par exemple passer l'id de ton textarea courrant dans ta fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cell.innerHTML = '<input type="button" name="add" value="Add" onclick="insererLigne_Fin(\''+ newVar +'\')"" />';
    Ici je passe l'id du textarea que je suis en train de créer dans la fonction. Comme cela à chaque fois que tu cliqueras sur le bouton il te donnera l'id et tu pourras faire ce que tu veux par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (idCurrent)
    {
        var currentCellValue = document.getElementById(idCurrent).value;
        alert(currentCellValue);
    }
    si tu as déclarée ta fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function insererLigne_Fin(idCurrent)

    J'espère ne pas trop avoir été brouillon dans mon explication.

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par MisterPur Voir le message
    Il n'est pas nécessaire que nbLignes soit une variable globale. Dans son script nbLignes est calculé à chaque appelle à la fonction insererLigne_Fin() grace à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nbLignes = tableau.rows.length;
    Houlà, j'ai loupé cette ligne . Je me suis même demandé il a déclaré la varible nbLignes à quel endroit .

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut idCurrent et newVar
    Je pense qu'il y a une petite confusion ou alors c'est qui vous suit pas bien:
    idCurrent est le parametre de ma fonction insererLigne_fin() ou bien??

    Par contre newVar est la dernière valeur saisie dans textarea.
    Si vrai je comprend pas ce boc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cell.innerHTML = '<input type="button" name="add" value="Add" onclick="insererLigne_Fin(\''+ newVar +'\')"" />';
    MAIS JE RAPPEL QUE VOUS NE METTEZ TOUJOURS PASL'ACCENT SUR LE CODE HTML QUI AFFICHE MON FORMULAIRE PAR DEFAUT c-a-d:
    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
     
    <form name="form2" method="post" action="">
          <table id="idTable" align="center">
                <tr>
                    <td width="15%">
                        <textarea name="sizepopulation" id="?????" rows="1" cols="15" ></textarea>
                    </td>
     
                     <td width="10%">
                           <input type='button' name='add' value='Add' onclick='insererLigne_Fin()'/>
                     </td>
                      </tr>
              </table>
    </form>


    Une fois encore merci de m'aider

  12. #12
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Tu peux indexer l'id en l'incrémentant à chaque ajout d'une nouvelle ligne et tu passes cet index en paramètre de la fonction.

    A+.
    C'est fou ça... Il y a tellement de débutants en Javascript paralysés car ils ne connaissent rien d'autre que document.getElementById pour récupérer leurs éléments. Pourquoi enfoncer le clou et les faire persister dans leur erreur en leur demandant de continuer avec des ID incrémentés cette fois ?

    Il existe des dizaines de fonctions différentes pour parcourir le DOM dans tous les sens et récupérer les éléments souhaités. On a même une fonction magique document.querySelector/querySelectorAll avec un large support aujourd'hui qui fait presque aussi bien que le sélecteur de jQuery. Je plains tous ceux qui ne connaissent pas ces fonctions et doivent se casser les dents à l'heure actuelle.

    http://jsfiddle.net/pfYZF/

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form name="form2" method="post" action="">
          <table id="idTable" align="center">
                <tr>
                    <td width="15%">
                        <textarea class="sizepopulation" id="sizepopulation" rows="1" cols="15" ></textarea>
                    </td>
     
                     <td width="10%">
                           <input type='button' name='add' value='Add' onclick='insererLigne_Fin()'/>
                     </td>
                      </tr>
              </table>
    </form>

    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
    function insererLigne_Fin()
    {
        var cell, ligne;
     
         // je récupère l'identifiant (id) de la table qui sera modifiée
        var tableau = document.getElementById("idTable");
        var nbLignesAvant = tableau.rows.length;
        ligne = tableau.insertRow(-1); // ici création d'une ligne pour ajout en fin de table
        cell = ligne.insertCell(0);
        cell.innerHTML = " <textarea class='sizepopulation' rows='1' cols='15' ></textarea>";
        cell = ligne.insertCell(1);
        cell.innerHTML = " <input type='button' name='add' value='Add' onclick='insererLigne_Fin()' />";
     
    	var nbLignesApres = tableau.rows.length; // egal à nbLignesAvant + 1 normalement
     
    	var textareas = tableau.querySelectorAll("textarea.sizepopulation");
    	var ch_size = textareas[nbLignesAvant-1].value;
        alert('Valeur de la dernière ligne avant insertion: '+ ch_size);
     
    }
    One Web to rule them all

  13. #13
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 18
    Points
    18
    Par défaut
    Je ne sais pas ce qu'elle veut faire exactement, mais j'étais parti du principe qu'elle voulait que par exemple, si elle clique à la ligne 3, récupérer la valeur du textarea de la ligne 3. Donc pour faire plus simple c'est plus facile de passer par un id. > http://jsfiddle.net/9v5Bc/1/
    Evidemment on peut faire autrement mais à quoi bon.

    En revanche si elle veut seulement récupérer la dernière valeur, ton code serait préférable. Même si dans ce cas ne pas créer un bouton par ligne serait mieux. > http://jsfiddle.net/pfYZF/1/


    Pour répondre à ta question lastarfane :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cell.innerHTML = '<input type="button" name="add" value="Add" onclick="insererLigne_Fin(\''+ newVar +'\')"" />';
    Dans cette ligne, newVar était le nom de ton nouvelle id. Du coup si tu regarde mon jsFiddle tu comprendras peut être mieux avec le newId à la place du newVar.

  14. #14
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut proposition de SylvainPV
    Franchement merci; vous êtes des génies

    J'avais la dall et je me suis levé un moment

    ça l'air de ressembler à mon problèm je me pench sur ça et je vous en donne le compte rendu.

    La reponse de SylvainPV semble allez; toutefois MisterPur je tiens compte de ta proposition. ouf au boulot

  15. #15
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par MisterPur Voir le message
    Je ne sais pas ce qu'elle veut faire exactement, mais j'étais parti du principe qu'elle voulait que par exemple, si elle clique à la ligne 3, récupérer la valeur du textarea de la ligne 3. Donc pour faire plus simple c'est plus facile de passer par un id.
    Evidemment on peut faire autrement mais à quoi bon.
    Au contraire ça ne fait que compliquer les choses, qui dit ID dynamique dit risque de collision (duplicat d'ID dans la page), en plus de rendre le sélecteur plus complexe car il faut se rappeler du format de l'ID dynamique. En CSS tu ne te poserais même pas la question, tu utiliserais instinctivement un sélecteur par tag ou par classe, alors pourquoi ne pas faire la même chose en JS ? querySelectorAll renvoie un tableau, si tu veux la troisième ligne c'est lignes[2] ; c'est aussi simple que cela.

    Un ID a pour vocation d'identifier un élément unique dans une page. Une ligne dans un tableau n'a rien d'unique. JavaScript propose des dizaines de moyens de sélectionner des noeuds HTML dans une page, il n'y a aucune raison pour n'en utiliser qu'un seul à tout bout de champ. Ca te paraît peut-être plus simple, mais au final tu te compliques la vie...
    One Web to rule them all

  16. #16
    Membre habitué Avatar de elfamine
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 113
    Points : 186
    Points
    186
    Par défaut
    Je connaissais pas du tout querySelectorAll Merci SylvainPV

  17. #17
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Ta methode avec un select
    Merci j'ai évolué et à présent je veux savoir s'il est possible d'appliquer aussi ton code aux balises <input> et <select>


    SylvainPV, comme j'utilise ta méthode finalement, pourrais tu m'orienter dans ce sens??

  18. #18
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Pour aller plus loin (attention cela n'a pas pour vocation à vous embrouiller ) :

    Voici une liste exhaustive des méthodes du DOM qui permettent de récupérer une liste d'éléments.

    Comme vous pouvez le voir, et comme Sylvain l'a indiqué, document.querySelectorAll est la méthode native qui semble la plus adaptée / rapide.

    Aussi, il faut avoir conscience que la liste créée à partir de document.querySelectorAll (liste statique) n'est pas la même que celle créée à partir de document.getElementsByTagName (liste dynamique) !
    En effet, la première contient donc des copies des éléments du DOM au moment où ils sont filtrés tandis que la dernière contient des références des éléments du DOM.

    Pour illustrer, prenons par exemple une page html qui contient 10 div

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var divs = document.querySelectorAll("div"),
        i=0;
     
    while(i < divs.length){
        document.body.appendChild(document.createElement("div"));
        i++;
    }
    console.log(i + ' créés');
    - divs.length vaut donc 10
    - divs contient une NodeList statique
    - 10 nouveaux éléments div seront créés et ajoutés au body de la page


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var divs = document.getElementsByTagName("div"),
        i=0;
     
    while(i < divs.length){
        document.body.appendChild(document.createElement("div"));
        i++;
    }
    console.log(i + ' créés');
    - divs.length vaut donc 10 au début
    - divs contient une NodeList dynamique, elle est recalculée dès que le DOM change !
    - A la fin du premier tour de boucle, divs.length vaudra donc 11, au deuxième 12, etc .. => boucle infinie


    La deuxième méthode est donc mieux dans le sens où il suffit d'appliquer qu'une seule fois la méthode de sélection des éléments. Ajouter/Enlever des éléments au DOM mettra à jour automatiquement la liste.
    C'est sur quoi les célèbres, mais preque désuets, document.forms, document.images, document.all etc étaient basés

  19. #19
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Citation Envoyé par Kaamo
    La deuxième méthode est donc mieux dans le sens où il suffit d'appliquer qu'une seule fois la méthode de sélection des éléments. Ajouter/Enlever des éléments au DOM mettra à jour automatiquement la liste.
    je ne peux acquiescer ce qui permet de remettre à sa place cette méthode souvent décriée.

    On constate même qu'au niveau de la "vitesse" elle est très loin d'être ridicule, chez moi il n'y a que sur Chrome 29.0.1547.66 qu'elle n'arrive pas en tête .

    Merci Kaamo d'avoir (re)mis cette notion à plat.

    Citation Envoyé par lastarfane
    Merci j'ai évolué et à présent je veux savoir s'il est possible d'appliquer aussi ton code aux balises <input> et <select>
    pourquoi ne pas la mettre en application dans ton code?

  20. #20
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Effectivement document.getElementsByTagName présente cet avantage. Seulement sélectionner tous les <div> du document s'avère rarement utile au final Et si les noeuds sont créés ou supprimés en Javascript, on peut continuer à maintenir la liste statique à jour via les méthodes d'Array.

    Il y a un autre avantage de taille à querySelector, c'est qu'on peut l'appeler depuis n'importe quel élément HTML pour n'appliquer le sélecteur qu'aux enfants de cet élément, comme je l'ai fait dans mon exemple sur le tableau. L'équivalent de jQuery.find en somme.
    One Web to rule them all

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [DisplayTag] Récupérer valeur d'une ligne
    Par chris78 dans le forum Taglibs
    Réponses: 0
    Dernier message: 30/05/2013, 20h54
  2. [XL-2003] Récupérer valeur d'une ligne
    Par fta95200 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2013, 17h26
  3. Réponses: 1
    Dernier message: 11/11/2009, 12h55
  4. Colorer une ligne sur deux dans un tableau croisé
    Par markoBasa dans le forum iReport
    Réponses: 1
    Dernier message: 25/09/2008, 12h15
  5. Réponses: 3
    Dernier message: 30/08/2007, 09h56

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