JQuery模板 - 获取JSONList的索引

时间:2011-06-06 06:48:53

标签: jquery json jquery-templates

您好我有一个jsonlist对象,我将其发送到模板。我想将项目索引发送到getSurname方法以从json对象获取项目。那么如何获得jsonList的项目索引?

我的模板:

$.template('deneme',
 '<div>${name}: <input onClick='getSurname(\"${$index}\")' 
  type='checkbox' /></div>

我的Json列表:

[{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}]

function getSurname(){
....???
}

1 个答案:

答案 0 :(得分:1)

关于这个的两个想法:

1-而不是让模板在数组的每个项目上运行,您可以将整个数组传递给模板,并更好地访问索引/项目信息。

var data = [{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}];

$("#deneme").tmpl({ people: data }).appendTo("#content");

<script id="deneme" type="text/html">
    {{each(i, person) people}}
    <div>
        ${name}: <input onClick='getSurname("${i}")' type='checkbox' />
    </div>
    {{/each}}
    <hr />
</script>

2-另一种选择是使用模板插件的tmplItem功能。这看起来像是:

var data = [{"name":"Sedat","surname":"Basar"},
{"name":"Deneme","surname":"Avile"},
{"name":"Ganmaz","surname":"Oyilmna"}];

function getSurname(element){
    var data = $(element).tmplItem().data;
    alert(data.surname);
}


$("#deneme").tmpl(data).appendTo("#content");

<script id="deneme" type="text/html">
    <div>
        ${name}: <input onClick='getSurname(this)' type='checkbox' />
    </div>
</script>

此处的示例:http://jsfiddle.net/rniemeyer/XCThu/