我正在使用车把 js,并且我创建了一个助手。
Handlebars.registerHelper('str', function(....) {
el = $(this);
console.log(el);
});
当我签入 firebug el 时,将以这种格式分配一个对象
Object { title="Title1", day="Fri", more...}
但它基本上是一个里。如何将对象作为 li 获取,以便我可以对其执行操作。
我正在使用车把 js,并且我创建了一个助手。
Handlebars.registerHelper('str', function(....) {
el = $(this);
console.log(el);
});
当我签入 firebug el 时,将以这种格式分配一个对象
Object { title="Title1", day="Fri", more...}
但它基本上是一个里。如何将对象作为 li 获取,以便我可以对其执行操作。
你可以直接使用this
el = this;
更新:
我没有注意到“handlebars.js”。无论如何,handlebars js 处理 html 字符串。它不操纵对象。您可以创建模板并应用数据来填充所需的 html 字符串。因此,如果您想添加一些可以使用 jQuery 检索的数据,您必须添加一个属性,如下所示。
<li data-name="abc">abc</li>
可以使用
$("li").data("name")
我希望下面的代码能帮助你 jsfiddle:http: //jsfiddle.net/diode/bGJTv/
Handlebars.registerHelper('str', function(items, options) {
var out = '<ul>';
for (var i = 0, l = items.length; i < l; i++) {
out = out + '<li data-mydata="' + items[i].year + '" onclick="onLiClick(event)">' + items[i].firstName + " " + items[i].lastName + '</li>';
}
return out + '</ul>';
});
$("#entry-template").html(Handlebars.compile($("#entry-template").html())({
people: [
{
firstName: "Yehuda",
lastName: "Katz",
year: "2010"},
{
firstName: "Carl",
lastName: "Lerche",
year: "2011"},
{
firstName: "Alan",
lastName: "Johnson",
year: "2012"}
]
}));
onLiClick = function (event){
console.log(event.currentTarget);
console.log($(event.currentTarget).data("mydata"));
}