每个标记的Jquery模板:使用渲染多个选择框

时间:2011-10-18 12:57:51

标签: jquery-plugins jquery-templates jquery

我使用jquery每个标记从服务器呈现json数据作为选择框。例如:

$('#dogsBox').append(  $.toxmpl("{{each dogs}}<option value='${$value.id}'>${$value.name}</option>{{/each}}",data) 

$('#catsBox').append(  $.tmpl("{{each cats}}<option value='${$value.id}'>${$value.name}</option>{{/each}}",data)

$('wolvesBox').append(  $.tmpl("{{each wolves}}<option value='${$value.id}'>${$value.name}</option>{{/each}}",data)

假设狗,猫和狼是另一个对象动物的属性,我怎么能使这个通用?我该怎么替代“?????”在下面的脚本中。

动物:[狗:......,猫:......,狼:......]

    for(var animalName in animals){
    $("#"+animalName).append(  $.tmpl("{{each ????? }}<option value='${$value.id}'>${$value.name}</option>{{/each}}", animals );

}

将参数留给每个空白并传递动物[animalName]作为数据也不起作用。

谢谢, 克里斯。 P.S:我正在使用它们,因为它也适用于对象,而不仅仅是列表。

1 个答案:

答案 0 :(得分:1)

for(var animalName in animals){
    $.each(animals[animalName], function(key, val){
            $("#"+animalName ).append(  $.tmpl("<option value='${id}'>${name}</option>", val)  );
        }
    );