在我的html中,我有一个(隐藏的)模板,比如
<div class="tabletemplate dontshow" >
<p class="movieFile"></p>
<p class="movieDirector"></p>
</div>
我通过
获取模板var tableTemplate = $(".tabletemplate").clone().removeClass("dontshow");
然后我想在文本中插入文本字符串。我尝试了一些像
这样的东西tableTemplate.find(".movieFile").text(movieInfo.FileName);
或
$(".movieFile", tableTemplate).text(movieInfo.FileName);
但似乎都没有效果。
如何轻松地完成这项工作,理想情况下无需学习全新的js库。
答案 0 :(得分:1)
最佳解决方案是函数appendTo:
$(".movieFile").appendTo(movieInfo.FileName);或
tableTemplate.find(".movieFile").appendTo(movieInfo.FileName);
答案 1 :(得分:1)
试试这个:
$(".tabletemplate").clone().removeClass("dontshow").appendTo(".tabletemplate");
var movieFile = $(".tabletemplate").find(".movieFile")[0];
$(movieFile).text(movieInfo.FileName);
适合我。您必须将最后一个appendTo类更改为tabletemplate ofcourse的父级。
答案 2 :(得分:0)
似乎我一直都是正确的,除了我的movieInfo.FileName
对象由于某种原因不起作用,尽管firebug显示正确的字符串。我还要继续努力。用文本常量替换它表明我在正确的轨道上......
事实证明我不需要"append"
或"appendTo"
。
这就是我所拥有的并且有效:
jQuery.fn.outerHTML = function () {
return (this[0]) ? this[0].outerHTML : '';
};
function createTableElement(movieInfo) {
var template = tableTemplate.clone();
// template.find(".movieFile").text(movieInfo.FileName);
template.find(".movieFile").text("the movie");
template.find(".movieDirector").text("the director");
return template.outerHTML();
}
此函数返回整个div
的html字符串,然后我可以用它来构建我的表
谢谢大家的帮助和快速回复!