用jquery操作html的部分内容

时间:2013-12-13 01:05:27

标签: javascript jquery html

在我的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库。

3 个答案:

答案 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字符串,然后我可以用它来构建我的表

谢谢大家的帮助和快速回复!