在 $.tmpl 函数的 return 对象上调用 html() 函数
Call html() function on $.tmpl function's return object
Plunker 代码是 here。
我正在尝试从 jquery 模板及其数据中获取 html 内容。 tmpl
的return类型不就是jquery包裹对象吗?
这段代码,
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent = tmplContent + elt.html()
});
抛出错误为
elt.html is not a function
注意:我可以用另一种方式让它工作,如 plunker
但我想找出 $.tmpl 的 return 值的对象类型?
使用 document.createElement
创建一个 html 容器,而不是将 html 作为字符串连接,而是附加 html
var movies = [
{ Name: "The Red Violin", ReleaseYear: "1998" },
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" },
{ Name: "The Inheritance", ReleaseYear: "1976" }
]
var tmplContent = $("<div />").append($.tmpl(' <li> <b>${Name}</b> (${ReleaseYear}) </li>', movies)).html()
$('#results-0').html(tmplContent)
var tmplContent = document.createElement('div');
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent.appendChild(elt);
//tmplContent = tmplContent + elt.toString()
});
$('#results-1').html(tmplContent)
或者如果你还想把它作为字符串使用,你可以这样做
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent = tmplContent + $(elt).prop('outerHTML');
});
Plunker 代码是 here。
我正在尝试从 jquery 模板及其数据中获取 html 内容。 tmpl
的return类型不就是jquery包裹对象吗?
这段代码,
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent = tmplContent + elt.html()
});
抛出错误为
elt.html is not a function
注意:我可以用另一种方式让它工作,如 plunker
但我想找出 $.tmpl 的 return 值的对象类型?
使用 document.createElement
创建一个 html 容器,而不是将 html 作为字符串连接,而是附加 html
var movies = [
{ Name: "The Red Violin", ReleaseYear: "1998" },
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" },
{ Name: "The Inheritance", ReleaseYear: "1976" }
]
var tmplContent = $("<div />").append($.tmpl(' <li> <b>${Name}</b> (${ReleaseYear}) </li>', movies)).html()
$('#results-0').html(tmplContent)
var tmplContent = document.createElement('div');
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent.appendChild(elt);
//tmplContent = tmplContent + elt.toString()
});
$('#results-1').html(tmplContent)
或者如果你还想把它作为字符串使用,你可以这样做
$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
tmplContent = tmplContent + $(elt).prop('outerHTML');
});