我想用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>
所以一切都被取代了......
答案 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()