Jquery .html()取代了一切

时间:2013-09-18 15:24:09

标签: jquery

我想用html字符串中的不同内容替换元素的内容。我通过HTML5数据属性获取元素。骨干模板返回html_string,一长串div和嵌套div。

var html_string = template({model:player});

var newHtml = $(html_string).find("[data-position='Forward_1']").html("<div>NEWCONTENT</div>").html();

console.log('new html is');
console.log(newHtml);

输出结果为:

new html is 
<div>NEW CONTENT</div> 

所以一切都被取代了......

1 个答案:

答案 0 :(得分:2)

如果您只是想找到所有[data-position='Forward_1']元素,则不需要.find:

$("[data-position='Forward_1']").html("<div>NEW CONTENT</div>");

编辑:

由于您实际上正在使用此操作HTML字符串:

$("<div> ... </div>").find("[data-position='Forward_1']").html("<div>NEW CONTENT</div>");

您需要使用生成的元素执行某些内容。将其添加到DOM:

$("body").append($(html).find("[data-position='Forward_1']").html("<div>NEW CONTENT</div>"));

或者获得生成的HTML:

var newHtml = $(html).find("[data-position='Forward_1']").html("<div>NEW CONTENT</div>").html()