Używam jQuery.append (), aby dynamicznie dodawać niektóre elementy. Czy jest jakiś sposób na uzyskanie kolekcji jQuery lub tablicy tych nowo wstawianych elementów?
Więc chcę to zrobić:
$("#myDiv").append(newHtml);
var newElementsAppended = // answer to the question I'm asking
newElementsAppended.effects("highlight", {}, 2000);
Odpowiedzi:
Jest na to prostszy sposób:
Odwraca to wszystko, najpierw tworząc za
newHtml
pomocąjQuery(html [, ownerDocument ])
, a następnie używającappendTo(target)
(zwróć uwagę naTo
bit „ ”), aby dodać go na końcu#mydiv
.Bo teraz zacząć z
$(newHtml)
wynikiem końcowymappendTo('#myDiv')
jest to, że nowy kawałek html, a.effects(...)
rozmowa będzie w tym nowym kawałku html zbyt.źródło
effects
nie jest funkcją ... aleeffect
jestnewHtml
nie jest prawidłowym kodem HTML lub prawidłowym selektorem jQuery:$('/ This is Not HTML /').appendTo('#myDiv')
powoduje, żeUncaught Error: Syntax error, unrecognized expression
while$('#myDiv').append('/ This is Not HTML /')
działa poprawnie, dodając tekst do elementu docelowego.źródło
$elements.effect("highlight", {}, 2000);
nie jesteffects
.źródło
Małe przypomnienie , gdy elementy są dodawane dynamicznie funkcje, takie jak
append()
,appendTo()
,prepend()
iprependTo()
zwraca obiekt jQuery, a nie elementu DOM HTML.PRÓBNY
źródło
Myślę, że możesz zrobić coś takiego:
Nadrzędny #parentId jest zwracany z append, więc dodaj do niego zapytanie potomne jquery, aby wstawić ostatnie dziecko div.
$ child jest wówczas dodanym div dziecka owiniętym jquery.
źródło