使用jquery.tmpl将数据设置到元素

时间:2012-03-22 11:47:36

标签: jquery html5 jquery-ui jquery-templates

我已将数据设置为div元素并将其附加到另一个div元素,

var dt = { id: 0 };
$.template("temp", '<div id="div2" >${id}</div>');
$.tmpl("temp", dt).appendTo("#div1");

工作正常。我将它附加在文档就绪方法中。

我的要求是,它的(div2)点击事件我必须访问dt。

有可能吗?

问题2:我已将此数据设置为很多元素。如何获得这些元素?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用$.tmplItem

var dt = { id: 222, text: 'My value id 222' };

$.template("temp", '<div class="innerDiv" >${id}</div>');
$.tmpl("temp", dt).appendTo("#div1");

$(document).on('click', '.innerDiv', function() {
    // gets the data item associated to the rendered template
    var dataItem = $.tmplItem(this);
    // dataItem.data holds the data itself
    alert(dataItem.data.text);
});
​

<强> DEMO


对于第二个问题,我不知道如何使用API​​轻松获取特定模板的渲染列表。

您可以做的是在模板标记中添加data-属性,以便您轻松检索它们:

$.template("temp", '<div id="div2" data-tmpl="temp">${id}</div>');

然后你可以选择所有具有值为“temp”的属性“data-tmpl”的渲染:

$('[data-tmpl="temp"]')

我已经以这种方式更新了演示。

也许还有其他一些方法,但我熟悉jQuery模板。