cwe*_*ton 5 javascript jquery dom jquery-templates
我正在使用jQuery的模板插件呈现几个与此类似的行项:
var clientData = [
{ name: "Rey Bango", id: 1 },
{ name: "Mark Goldberg", id: 2 },
{ name: "Jen Statford", id: 3 } ];
<script id="clientTemplate" type="text/html">
<li><${name}</li>
</script>
$("#clientTemplate").tmpl(clientData).appendTo( "ul" );
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以使用jQuery的数据函数来将每个行项目关联回标识符以进行更新.
通常你可以做这样的事情:
$.each(clientData, function(idx, item) {
$('<li></li>').appendTo('ul#clientTemplate')
.text(item.name)
.data('clientId', item.id);
});
$('ul#clientTemplate li').click(function() {
updateClient($(this).data('clientId'));
});
Run Code Online (Sandbox Code Playgroud)
但是,在模板化时,您没有此类控件.
注意:我宁愿不使用新的隐藏元素在每一行上存储这些数据,或者如果我不需要,则使用元素上的其他属性.
想法?
谢谢
jQuery 模板插件包含tmplItem函数,该函数允许您返回与模板呈现的任何元素关联的实际数据。
因此,您可以执行以下操作:
var client = $("li").first().tmplItem().data
Run Code Online (Sandbox Code Playgroud)
在这种情况下,client您的数据将是:
{ name: "Rey Bango", id: 1 }
Run Code Online (Sandbox Code Playgroud)
示例在这里: http: //jsfiddle.net/rniemeyer/fvhj4/
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |