0

私はハンドルバー js を使用しており、ヘルパーを作成しました。

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

firebug el をチェックインすると、この形式のオブジェクトが割り当てられます

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

しかし、それは基本的に李です。オブジェクトをliとして取得して、それに対して操作を実行できるようにするにはどうすればよいですか。ここに画像の説明を入力

4

1 に答える 1

0

直接使用できます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"));
}
于 2012-08-15T11:33:51.300 に答える