我正在寻找像下面这样从jquery中的java / grails迭代列表
Controller
session.legendList = legendList // [Soham Shetty] list in controller set to session
GSP
<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) {...}
确实会迭代,但是会在字符串的每个字符(包括方括号)上进行迭代,这不是您想要的。参见fiddle。
通过在<input>
元素中提供列表的CSV表示形式,javascript / jQuery将能够使用String.prototype.split()将$("#legendListId").val()
解析为一个数组。
或者,传递您的Groovy list to javascript directly。
关于jquery - 迭代使用 session 访问的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35644504/