2

我想用 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> 

所以一切都被取代了..

4

1 回答 1

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()
于 2013-09-18T15:27:02.140 回答