Estou usando o jQuery.append () para adicionar alguns elementos dinamicamente. Existe alguma maneira de obter uma coleção ou matriz jQuery desses elementos recém-inseridos?
Então, eu quero fazer isso:
$("#myDiv").append(newHtml);
var newElementsAppended = // answer to the question I'm asking
newElementsAppended.effects("highlight", {}, 2000);
Respostas:
Existe uma maneira mais simples de fazer isso:
Isso muda tudo, primeiro criando
newHtml
comjQuery(html [, ownerDocument ])
e, em seguida, usandoappendTo(target)
(observe oTo
bit " ") para adicioná-lo ao final de#mydiv
.Porque agora você começa com
$(newHtml)
o resultado final deappendTo('#myDiv')
é esse novo bit de html, e a.effects(...)
chamada também será nesse novo bit de html.fonte
effects
não é uma função ... maseffect
énewHtml
não for HTML válido ou um seletor jQuery válido:$('/ This is Not HTML /').appendTo('#myDiv')
resulta emUncaught Error: Syntax error, unrecognized expression
enquanto$('#myDiv').append('/ This is Not HTML /')
funciona corretamente, acrescentando texto ao elemento de destino.fonte
$elements.effect("highlight", {}, 2000);
, nãoeffects
.fonte
Um pequeno lembrete , quando os elementos são adicionados dinamicamente, funções como
append()
,appendTo()
,prepend()
ouprependTo()
retornar um objeto jQuery, não o elemento HTML DOM.DEMO
fonte
Eu acho que você poderia fazer algo assim:
O pai #parentId é retornado do anexo, portanto, adicione uma consulta filho jquery a ele para obter o último filho div inserido.
$ child é então o div filho derivado de jquery que foi adicionado.
fonte