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

jQuery Discussion :

Récupérer tous les attributs dans un tableau


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 54
    Par défaut Récupérer tous les attributs dans un tableau
    Bonjour à tous
    Je viens demander votre aide.
    J'ai un ensemble d'éléments ayant en commun la classe "target", j'essai de récupérer tous les attributs ainsi que les valeurs correspondantes dans un tableau.
    J'utilise le code ci dessous, j'ai bien le résultat souhaité pour chaque élément lorsque je fais console log dans la boucle, mais le résultat finale me donne un tableau vide.

    Ci dessous le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    let
    				obj = {},
     
    				$.map($('.target'), function(elem){
     
    					for (var att, i = 0, atts = elem.attributes, n = atts.length; i < n; i++){
    						att = atts[i];
    						obj[att.nodeName] = att.nodeValue;
    					}
     
    				});
    Merci d'avance pour votre aide.

    Cordialement

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    montrez nous le code entier avec le code de débugage et le résultat qui s'affiche.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 54
    Par défaut
    Bonjour Mathieu, ci dessous les codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function showattr() {
    	let
    		obj = {};
     		$.map($('.target'), function(elem){
    			for (var att, i = 0, atts = elem.attributes, n = atts.length; i < n; i++){
    				att = atts[i];
    				obj[att.nodeName] = att.nodeValue;
    			}
    		});
    	console.log(obj);
    };
    Ci-dessous un exemple d'élément sur lequel j'aimerai récupérer par exemple les attribut : data-divid, data-type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h6 class="targetix" id="btn_03683e4d31e40faebf23_3" data-type="typeo" data-divid="03683e4d31e40faebf23">test</h6>
    Ci dessous le résultat de la console :
    Nom : ide.png
Affichages : 137
Taille : 1,9 Ko

    Merci pour votre aide

    Cordialement

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    en mettant $('.targetix') dans votre code, j'obtiens bien la liste des attributs dans le tableau "obj".

    https://codesandbox.io/s/elated-haibt-c68bn

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 54
    Par défaut
    [Merci pour ton aide. J'ai regardé, comme ça marche mais j'ai plusieurs éléments et lorsque je duplique l'élément (pour en avoir 2 ou plus) uniquement les attributs du dernier élément sont récupéré. Alors que je m'attend a avoir un tableau avec les attribut de chaque élément.

    Merci de ton aide

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    c'est parce que vous utilisez un tableau avec le nom des attributs comme clé.
    pour le 1er élément, la valeur de l'attribut est enregistré sous la clé "data-type" par exemple. mais ensuite quand la boucle parcours le 2e élément, la nouvelle valeur écrase la valeur du 1er élément.

    avant de faire le code, il faut d'abord que vous choisissez quelle structure de données vous voulez pour stocker le résultat de la lecteur des attributs.

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

Discussions similaires

  1. Récupérer tous les attributs "id" d'une chaine
    Par Gedan dans le forum jQuery
    Réponses: 4
    Dernier message: 23/08/2011, 15h15
  2. récupérer tous les attributs d'un formulaire javascript
    Par popol76 dans le forum Microsoft Dynamics CRM
    Réponses: 2
    Dernier message: 03/06/2010, 15h33
  3. Réponses: 2
    Dernier message: 06/04/2007, 16h35
  4. [JDOM] Récupérer tous les attributs d'un élément
    Par ammah dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 21/06/2006, 17h05
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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