J'utilise jQuery.append () pour ajouter dynamiquement des éléments. Existe-t-il un moyen d'obtenir une collection ou un tableau jQuery de ces éléments nouvellement insérés?
Alors je veux faire ceci:
$("#myDiv").append(newHtml);
var newElementsAppended = // answer to the question I'm asking
newElementsAppended.effects("highlight", {}, 2000);
Réponses:
Il existe un moyen plus simple de le faire:
Cela change les choses en créant d'abord
newHtml
avecjQuery(html [, ownerDocument ])
, puis en utilisantappendTo(target)
(notez leTo
bit " ") pour l'ajouter à la fin de#mydiv
.Parce que vous commencez maintenant avec
$(newHtml)
le résultat final deappendTo('#myDiv')
est ce nouveau bit de html, et l'.effects(...)
appel sera également sur ce nouveau bit de html.la source
effects
n'est pas une fonction ... maiseffect
c'estnewHtml
n'est pas du HTML valide ou un sélecteur jQuery valide: il en$('/ This is Not HTML /').appendTo('#myDiv')
résulteUncaught Error: Syntax error, unrecognized expression
que tout$('#myDiv').append('/ This is Not HTML /')
fonctionne correctement en ajoutant du texte à l'élément cible.la source
$elements.effect("highlight", {}, 2000);
noneffects
.la source
Un petit rappel , lorsque des éléments sont ajoutés de façon dynamique, des fonctions telles que
append()
,appendTo()
,prepend()
ouprependTo()
retourner un objet jQuery, pas l'élément DOM HTML.DEMO
la source
Je pense que vous pourriez faire quelque chose comme ça:
Le parent #parentId est retourné à partir de l'ajout, alors ajoutez-lui une requête jquery children pour obtenir le dernier enfant div inséré.
$ child est alors le div enfant enveloppé par jquery qui a été ajouté.
la source