Моя проблема связана с jQuery и элементами DOM. Мне нужен шаблон, подобный следующему:
var threadreply = " <li class='replyItem'>"
+ " <div class='clearfix'>"
+ " ${tittle}"
+ " </div>"
+ " </li>"
;
$.template( "threadreply", threadreply );
Как видите, это элемент списка. Моя проблема, когда я анализирую его с помощью $.tmpl
, который возвращает действительный элемент DOM без тегов <li> </li>
.
liElement = liElement + $.tmpl("threadreply", {"tittle": "hello"} ).html();
Есть ли способ получить элемент без переформатирования?
Я знаю, что могу сделать это с шаблоном с допустимым тегом ul
и внутри каждого цикла шаблона jQuery, но я не работаю с JSON, я не могу преобразовать свои структуры данных в JSON.
Полный пример выглядит следующим образом:
var threadreply = " <li class='replyItem'>"
+ " <div class='clearfix'>"
+ " ${tittle}"
+ " </div>"
+ " </li>"
;
$.template( "threadreply", threadreply );
var liElement = "";
for( var i = 0; i < 150; i ++ ){
liElement = liElement + $.tmpl("threadreply", {"tittle": "hello"} ).html();
}
$(liElement).appendTo("#ULElement");
EDITED
Я нашел обходной путь с этим потоком: JQuery Object to String , который заключается в переносе каждого элемента DOM, возвращенного $.tmpl
в div
до получения .html()
объекта:
liElement = liElement + $('<div>').append( $.tmpl("threadreply", {"tittle": "hello"} )).html();
При 300 элементах на обработку всех элементов уходит примерно 290 мс. С appendTo()
внутри цикла это занимает более 800 мс.