>我希望在jquery中迭代java/grails的列表,如下所示
控制器
session.legendList = legendList // [Soham Shetty] list in controller set to session
普惠制
<input type="hidden" name="legendList" id="legendListId" value="${session.legendList}">
jQuery
var filterList= $("#legendListId").val();
// also tried
// var arrLegendList = jQuery.makeArray( filterList );
for(f in filterList){
$('#impact-report-user-filter-dropdown').append($('<option>', {
value: filterList[f],
text: filterList[f]
}));
}
$("#impact-report-user-filter-dropdown").multiselect("refresh");
这是不起作用的,它给出一个字符串字符作为 f 而不是一个元素列表
客户端,$("#legendListId").val()
返回一个字符串,而不是可迭代列表。
for(f in filterList) {...}
确实会迭代,但遍历字符串的每个字符,包括方括号,这不是您想要的。见小提琴。
通过在 <input>
元素中提供列表的 CSV 表示,javascript/jQuery 将能够使用 String.prototype.split() 将$("#legendListId").val()
解析为数组。
或者,将你的Groovy列表直接传递给javascript。