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

  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 à 10h46.

  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...

  7. #7
    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
    Je ne suis pas sûr que jObjDiv soit indéfini ou null. Mon code est compliqué. J'utilise 2 variables globales (numbPage et numbThisPage). (Je pense que pour fixer les valeurs je devrais plutôt utiliser un bouton de type hidden.)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        str = "#MyString" + i;     
                        jObjDiv = $(str).parent().closest('div');
                        divID = jObjDiv.attr('id');
     
                        var numbT = 0;
     
                        if (numbPage > numbThisPage) {                        
                            numbT=numbThisPage+1;
                        }
                        if (divID === $("#pMaDiv" + numbT).attr('id')) {


    A la base j'ai une grande Div contenant X chaînes de caractères. Je répartis les chaînes de caractères sur des Div de plus petite taille si la grande Div dépasse une certaine taille.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 261
    Par défaut
    Bonjour,
    Je ne suis pas sûr que jObjDiv soit indéfini ou null.
    ben si puisqu'il te le dit
    JavaScript runtime error: Unable to get property 'id' of undefined or null reference
    essaies de tracer jObjDiv = $(str).parent().closest('div'), ce n'est peut être pas ce que tu cherches .

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    sinon avec index() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ul id="one">
    <li>lkj</li>
    <li id="a">lkj</li>
    <li id= "b">lkj</li>
    </ul>
    <ul id="two">
    <li>lkj</li>
    <li id="c">lkj</li>
    <li>lkj</li>
    </ul>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(function(){
    console.log( $( "#one li" ).index( $("#a") ) > 0 && $( "#one li" ).index( $("#b") ) > 0  ); // true ils sont dans le même conteneur
    console.log( $( "#one li" ).index( $("#a") ) > 0 && $( "#one li" ).index( $("#c") ) > 0  ); // false il ne sont pas dans le même conteneur
    })
    et si ce ne sont pas des enfants de premier rang ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(function(){
    console.log( $( "#one" ).find( $("#a") ).length > 0 && $( "#one" ).find( $("#b") ).length > 0  );
    console.log( $( "#one" ).find( $("#a") ).length > 0 && $( "#one" ).find( $("#c") ).length > 0  );
    })
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    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
    Merci beaucoup, j'ai un peu bricolé et je ne rencontre plus ce bug à présent sur Visual Studio community. Mais je suis bloqué quand même. J'ai 2 principaux soucis avec Cordova, le premier porte sur la fonction ajax; elle ne fonctionne pas avec le Debug Android mais seulement avec Windows-86x (ordinateur local et simulateur) dans Visual Studio. Dans le simulateur XDK par contre ça fonctionne mais je rencontre le même problème quand j'utilise l'application Intel App Preview, ça marche sur mon ipad 2 mais pas sur windows et Androïd. Ensuite mon deuxième problème c'est que j'ai des boutons qui ne répondent pas quand on clique dessus selon la simulation que l'on choisit. J'aimerai bien qu'il y ait un forum dédié à Cordova sur votre site.

+ 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, 17h06
  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, 12h30
  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, 14h14
  4. savoir si deux IXMLNode correspondent au même noeud ?
    Par Bruno75 dans le forum Langage
    Réponses: 8
    Dernier message: 26/10/2005, 12h02
  5. Réponses: 4
    Dernier message: 28/02/2005, 19h04

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