2011-11-01 4 views
1

Quelqu'un peut-il m'éclairer pourquoi le code suivant ne fonctionne pas? Mon intention est de créer des divs enfants à l'intérieur du div 'test'. Mais quand je vérifie avec '$ ("# test> div"). Size()', il retourne '0'. J'ai aussi essayé une autre alternative, y compris celle mentionnée dans la publication 'Générer Dynamiquement des Divs avec jQuery basé sur un nombre variable', mais cela retourne aussi le même résultat '0'. J'utilise "jquery-1.6.4.js" (également essayé avec "jquery-1.6.2.js").Création dynamique de divs avec jQuery

J'espère que quelqu'un peut souligner ce que je fais mal.

+2

Est-ce que ce code réside dans un [prêt] (http: //api.jquery.com/ready/) gestionnaire? –

+0

Si vous êtes toujours bloqué, fournissez un lien direct. –

+0

@Frederic: non, il ne réside pas dans le gestionnaire prêt. – nyeinzay

Répondre

3

Tout va bien. Vous essayez probablement d'exécuter ce code avant que jQuery soit chargé ou que le DOM soit prêt, mais vous testez avec la fonction .size() une fois que tout est en place.

Assurez-vous de tout emballer dans la fonction de préparation de document et vous devriez être bon.

+0

Merci, Greg Pettit. Maintenant, je sais que le problème est avec moi, pas avec le code :). Je viens de récupérer javascript et jQuery il y a 2 jours (pour mon projet d'école) et j'ai encore besoin d'apprendre beaucoup. – nyeinzay

2

Tout est OK dans votre code. See here

Et voir une autre approche des éléments de création here.

+0

Merci, InviS. Il semble que je doive lire un peu plus de choses sur javascript et jQurey pour l'appliquer correctement. – nyeinzay

+0

Pas du tout, nyeinzay :) – ValeriiVasin

0

Pour une meilleure pratique mettre $ fonction pour le code HTML

$("#test").append($ ("<div id='t" + ref + "'>In t" + ref + "</div>")); 

Et essayez

$("#test > div").length 

ou

$("#test>div").length 
+0

Puisque vous n'avez pas réellement besoin de $ pour que cela fonctionne, je suis curieux (d'une manière "je veux apprendre", pas sarcastique) de savoir pourquoi c'est une meilleure pratique. Je comprends qu'il fait un nœud avant de l'ajouter, mais jQuery ne le fait-il pas implicitement si vous ne le faites pas explicitement? –

+0

Je ne le connais pas vraiment aussi. Je l'ai eu de K ++ plusieurs mecs d'or de SO. :) –

+0

Merci, Moe Sweet, pour la suggestion. – nyeinzay