我正在权衡通过两种方法构建某种标记的优缺点。 可以说,我想用JavaScript创建这个简单的HTML标记:用纯jQuery制作html标记VS下划线模板方法
<li><img data-id="a" src="/src"></li>
<li><img data-id="b" src="/src"></li>
<li><img data-id="c" src="/src"></li>
<li><img data-id="d" src="/src"></li>
<li><img data-id="e" src="/src"></li>
你愿意用纯的jQuery做它像这样:
$.each(obj, function(key, value) {
$("<li/>")
.attr({"data-id":key})
.append(
$("<img/>", {
src: value.pic
})
).addClass("selected")
.appendTo("document");
})
或者,你想不想做,例如与模板underscore.js模板方法,像这样:
var listObj = '<% $.each(obj, \
function(key, value) { %> \
<li class="selected" data-id= <%= key %> ><img src= <%= value.pic %> ></li> \
<% }); %>';
$("document")append(_.template(listObj, {obj: obj}));
而且任何想法与更多的标记和代码的情况下更快? (也注意模板字符串listObj
中缺少的语法高亮显示,这让我有点困扰,因为我的代码编辑器textmate也没有突出显示语法,因为它认为它是一个字符串)
好吧,听起来没错,但我还不是很满意。如果我想在使用jQuerys数据方法[链接](http://api.jquery.com/data/)构建标记的同时向dom元素添加一些数据。我不能在模板中做这件事,因为DOM元素只是一个字符串...... – Hans
那么,你可以使用数据属性来存储你的数据。
请参阅您给我的页面上的“HTML 5 data-Attributes”。 – Sergey是的,我在某些情况下这样做,但如果可能的话,将数据存储在dom中似乎对我来说更加优雅。我想现在的js模板引擎是不可能的......但我仍然在试图找到一种方法,因为那对我来说真的是唯一的缺点。我现在正在研究胡子,但没有找到一个方法。 HTTP://计算器。com/questions/6977727/mustache-js-how-to-hook-up-data thx for the advice反正 – Hans