2009-10-14 7 views
0

Ma requête ajax retourne un objet avec mon HTML à l'intérieur, je veux compter les divs dans cet objet, je n'arrive pas à comprendre comment.Comment compter les éléments dans un objet?

Certains code:

$.ajax({ 
type: "GET", 
url: "/activity_results.html?"+options, 
cache: false, 
success: function(html, status){ 
if(html != ""){ 
$(html).appendTo("#comments"); 
alert(($(html)).length); 
} 
} 
}); 

Dans l'alerte je montre la longueur de l'ensemble de l'objet HTML, mais je veux vraiment percer embarqua et montrant la longueur d'un ensemble spécifique de divs.

Répondre

2

Il y a deux façons de le faire:

$("#comments div").length 

Ou avec le paramètre de contexte:

$("div", "#comments").length 

Ils tous les deux vous donnent le nombre de divs commentaires à l'intérieur, mais la 2ème méthode est plus rapide.

Si je comprends ce que vous essayez de faire, alors il semble que la solution ci-dessus fonctionne pour vous. Mais il y a une 3ème possibilité. Si vous avez déjà sélectionné un objet et que vous avez besoin de voir combien d'éléments d'un certain type sont à l'intérieur, alors c'est un peu différent. Si par exemple vous travaillez avec "ceci", il n'est pas pratique d'utiliser la méthode ci-dessus.

Au lieu de cela, vous pourriez faire quelque chose comme ceci:

$(this).find("div").length 

Ou ce pour obtenir le nombre de divs immédiats seulement:

$(this).children("div").length 
+0

Notez que cela comptera dans divs divs ainsi. – Sampson

+2

'$ (" # comments> div "). Length' pour compter les éléments DIV immédiats dans #comments. – Sampson

+0

Merci Jonathan. Il n'a pas précisé donc j'ai juste supposé qu'il voulait tous les divs. Mais tu as raison. –

Questions connexes