将对象转换为jquery对象

时间:2012-08-15 11:29:15

标签: javascript jquery handlebars.js

我使用了车把js,我创造了一个帮手。

Handlebars.registerHelper('str', function(....) {
    el = $(this);
    console.log(el);
});   

当我签入firebug时,将会以这种格式分配一个对象

 Object { title="Title1", day="Fri", more...}

但它基本上是一个李。如何将对象作为li来获取,以便我可以对其执行操作。enter image description here

1 个答案:

答案 0 :(得分:0)

您可以直接使用this

el = this;

更新:

我没注意到“handlebars.js”。无论如何,车把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"));
}