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 :

Savoir si deux éléments appartiennent à la même div


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Savoir si deux éléments appartiennent à la même div
    Bonjour, j'ai un code qui me permet de savoir si 2 éléments consécutifs (chaîne de caractères par exemple) appartiennent à la même div (pour cela je compare divID1 et divID2).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (i = 1; i <= NombreElements; i++) {
     
                        str1 = "#ElementN°" + i;
                        jObjDiv1 = $(str1).parent().closest('div');
                        divID1 = jObjDiv1[0].id;  <== 1 erreur
     
                        str2 = "#ElementN°" + i;
                        jObjDiv2 = $(str2).parent().closest('div');
                        divID2 = jObjDiv2[0].id; 		    
     
      			if (divID1 === divID2)    {alert("Même Div")}    else    {alert("Div différentes")};
    			...
    Mais j'ai une erreur qui apparaît quand je compile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SCRIPT5007: Exception non gérée à la ligne xxxx, colonne yy dans ms-appx-web://io.cordova.myappd6ce99/www/fichierJS.js
    0x800a138f - JavaScript runtime error: Unable to get property 'id' of undefined or null reference
    Pourriez-vous m'aider à la corriger svp? Merci d'avance de votre aide.

    Cordialement,

    Arsène

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ Montre le code HTML que tu veux tester.

    2/ explique chaque ligne de ton code JS.
    • NombreElements ?
    • str1 / str2 ?
    • .id ??

    (divID1 === divID2) : tu espères comparer quoi ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    str1 et str2 correspondent à des chaînes de caractères qui proviennent d'une base de données. Chaque chaîne de caractères possède un identifiant. Le nombre de chaîne de caractères (NombreElements) varie en fonction du résultat de la requête Ajax.

    Chaque Div possède un identifiant.

    divID1 est l'identifiant de la Div contenant str1.
    divID2 est l'identifiant de la Div contenant str2.

    Si divID1 = divID2 alors str1 et str2 sont dans la même Div.

  4. #4
    Invité
    Invité(e)
    Par défaut
    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                        str1 = "#ElementN°" + i;
    ...
                        str2 = "#ElementN°" + i;
    C'est rigoureusement identique, non ?

    2/ Et ça n'a rien à voir avoir un "contenu texte" :
    $(str1).... équivaut à $("#ElementN°" + i).... et signifie : l'élément dont l'id est "ElementN°x" !

    3/ pour trouver l'id d'un élément, on utilise .attr('id').



    Ton code n'a aucun sens...
    Tu es sûr de comprendre ce que tu écris ? Car moi, non.
    Dernière modification par Invité ; 31/12/2016 à 09h46.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    pardon, j'ai fait une erreur en reproduisant le code. j'aurai du écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                        str1 = "#ElementN°" + i;
                        jObjDiv1 = $(str1).parent().closest('div');
                        divID1 = jObjDiv1[0].id;  <== 1 erreur
     
                        j = i +1;
                        str2 = "#ElementN°" + j;
                        jObjDiv2 = $(str2).parent().closest('div');
                        divID2 = jObjDiv2[0].id;

    Si je remplace tous les [0].id par .attr('id') , j'ai la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        str = "#ElementN°" + i;
                        //jObjDiv = $(str).parents("div");          
                        jObjDiv = $(str).parent().closest('div');
                        divID = jObjDiv.attr('id');
     
    if (divID === $("#maDiv1").attr('id'))  ==> Erreur JavaScript runtime error: Unable to get property 'id' of undefined or null reference

  6. #6
    Invité
    Invité(e)
    Par défaut
    L'erreur signifie que jObjDiv est indéfini ou null. (on ne peut donc pas en trouver l'"id")

    Avec un bout de code HTML qu'on pourrait TESTER, ce serait plus simple...

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

Discussions similaires

  1. Somme de deux éléments dans la même colonne
    Par myroal dans le forum QlikView
    Réponses: 2
    Dernier message: 23/06/2016, 16h06
  2. Comment savoir si deux listes contiennent un même élément
    Par ahmadou_20 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/08/2014, 11h30
  3. [VB 6]Savoir si 2 dates appartiennent à la même semaine
    Par badrel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/03/2007, 13h14
  4. savoir si deux IXMLNode correspondent au même noeud ?
    Par Bruno75 dans le forum Langage
    Réponses: 8
    Dernier message: 26/10/2005, 11h02
  5. Réponses: 4
    Dernier message: 28/02/2005, 18h04

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