Моя проблема связана с 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");
ОТРЕДАКТИРОВАНО
Я нашел обходной путь с помощью этого потока: JQuery Object to String, который состоит в обертывании каждого возвращаемого элемента DOM на $.tmpl
в div
перед получением .html()
объекта:
liElement = liElement + $('<div>').append( $.tmpl("threadreply", {"tittle": "hello"} )).html();
С 300 элементами обработка всех элементов занимает около 290 мс. С appendTo()
внутри цикла это занимает более 800 мс.