在$ .tmpl函数&#39的返回对象上调用html()函数

时间:2016-04-12 01:18:11

标签: jquery jquery-templates

Plunker代码为here

我试图从jquery模板及其数据中获取html内容。是不是tmpl jquery包装对象的返回类型?

此代码,

$.each($('#movieTemplate').tmpl(movies), function(idx,elt){
  tmplContent = tmplContent + elt.html()
  });

将错误抛出

elt.html is not a function

注意:我可以使用plunker

中显示的替代方式使其工作

但我想弄清楚$ .tmpl的返回值的对象类型?

1 个答案:

答案 0 :(得分:1)

使用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');
});