【发布时间】:2014-04-22 00:16:54
【问题描述】:
我需要从 jQuery ajax 响应构建 HTML。我不喜欢在 javascript 中嵌套丑陋的字符串,也不想使用 mustache 或任何其他模板脚本。
所以我采用了一个带有 display: none 的模板 HTML 的方法,如下所示:
<div id="message-template" class="message-tile" style="display: none;">
<div class="profile-thumb"><img src="{{thumb-url}}" width="48" height="48" alt="{{person-name}}" /></div>
<div class="message-data">
<div class="message-info">
<div class="sender-name">
<a href="{{person-url}}">{{person-name}}</a>
</div>
<div class="posted-to">
To <a href="{{posted-to-url}}">{{posted-to-title}}</a>
</div>
</div>
<div>{{message-body}}</div>
</div>
</div>
我希望能够将 {{ }} 之间的字符串替换为 json 对象中的实际值。 假设这是在 jQuery.ajax onSuccess 事件上调用的函数:
function createNewElement(jsonObj) {
var $clone = $('#message-template').clone();
$clone.replaceString("{{person-name}}", jsonObj.personName);
$clone.replaceString("{{thumb-url}}", jsonObj.thumbUrl);
$clone.replaceString("{{person-url}}", jsonObj.personUrl);
// etc
$("#target-container").append($clone);
}
我发明了 replaceString 方法,但有类似的吗?还是我需要使用 find() 遍历每个子元素?
【问题讨论】:
标签: javascript jquery string replace