我使用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:我正在使用它们,因为它也适用于对象,而不仅仅是列表。
答案 0 :(得分:1)
for(var animalName in animals){
$.each(animals[animalName], function(key, val){
$("#"+animalName ).append( $.tmpl("<option value='${id}'>${name}</option>", val) );
}
);