Я использую jQuery.append () для динамического добавления некоторых элементов. Есть ли способ получить коллекцию jQuery или массив этих недавно вставленных элементов?
Итак, я хочу сделать это:
$("#myDiv").append(newHtml);
var newElementsAppended = // answer to the question I'm asking
newElementsAppended.effects("highlight", {}, 2000);
Ответы:
Есть более простой способ сделать это:
Это переворачивает вещи, сначала создавая
newHtml
с помощьюjQuery(html [, ownerDocument ])
, а затем используяappendTo(target)
(обратите внимание на "To
" бит), чтобы добавить это в конец#mydiv
.Потому что теперь вы начинаете с
$(newHtml)
конечного результатаappendTo('#myDiv')
- это новый бит html, и.effects(...)
вызов будет и для этого нового бита html.источник
effects
это не функция ... ноeffect
этоnewHtml
не является действительной HTML или действительный селектор JQuery:$('/ This is Not HTML /').appendTo('#myDiv')
результаты вUncaught Error: Syntax error, unrecognized expression
то время как$('#myDiv').append('/ This is Not HTML /')
работает должным образом путем добавления текста к целевому элементу.источник
$elements.effect("highlight", {}, 2000);
, что нетeffects
.источник
Небольшое напоминание , когда элементы добавляются динамически, такие функции , как
append()
,appendTo()
,prepend()
илиprependTo()
возвращать JQuery объект, а не элемент HTML DOM.DEMO
источник
Я думаю, что вы могли бы сделать что-то вроде этого:
Родительский #parentId возвращается из дополнения, поэтому добавьте к нему запрос дочерних jquery, чтобы вставить последний дочерний элемент div.
$ child - это добавленный дочерний div в jquery.
источник