2017-06-14 1 views
1

Dans le rappel AJAX, j'insère un DIV avec un ID particulier dans un DIV A. Maintenant, après chaque appel, si div avec ID donné n'est pas un élément enfant de DIV A, je crée un nouveau DIV et l'ajoute. Mais à chaque fois, $ ($ id) .length retourne 0, mais div avec $ id est là. Quels peuvent être des problèmes possibles ici?Impossible de sélectionner l'élément créé dynamiquement à l'aide de la fonction de rappel Ajax

Quelque chose comme ça se passe: -

$.post(,,function(){ 
    $id = "#123"//changes but can be same 
      foo($id); 
     }); 

     function foo(id) { 
     if($(id).length == 0){ 
      $("#A").append("<div id='b'></div>"); 
     } 
     } 
+3

«

» Contrôle de la détente vs guillemets simples et faites-nous –

+1

Jetez un oeil à la console de débogage de votre navigateur. Votre appel à '.append()' a une erreur de syntaxe qui sera signalée ici. * Toujours * vérifier la console de débogage. – David

+0

Vous pouvez déboguer le problème jQuery de la console du navigateur @avinash – mizan3008

Répondre

0

Où est votre tableau pour stocker vos références? $ ($ id) .length est une méthode à exécuter sur un tableau.

Pour utiliser .length, vous feriez quelque chose comme ceci:

var divArray = []; 
$.post(,,function(){ 
$id = "#123"//changes but can be same 
     foo($id); 
    }); 

    function foo(id) { 
    divArray.push(id); 
    if(divArray.length == 0){ 
     $("#A").append("<div id="b"></div>"); 
    } 
} 
+0

[Les objets jQuery ont une propriété 'longueur'] (https://api.jquery.com/length/) qui représente le nombre d'objets (objets js réels, éléments html, etc.) qu'il contient –

+0

Il peut également être utilisé pour trouver si une div avec ID donné est là ou non. – Avinash