java list 遍历给javascript数组

<script language="JavaScript" type="text/javascript">
function showkeyword() {
var keys = [ [ "和尚", "", "#ff0000" ],[ "负责", "", "#ff0ee0" ],[ "累死的", "", "#ff0eee" ],[ "问题", "", "#ff0eee" ] ]
// var keys =[[ "<%=kwBean.getKeyword()%>", "", "#ff0000" ]]
var bookmark;
if (document.createRange) {
var range = document.createRange();
} else {
var range = document.body.createTextRange();
bookmark = range.getBookmark();
}
var key;
for ( var i = 0; key = keys[i]; i++) {
if (range.findText) {
range.collapse(true);
range.moveToBookmark(bookmark);
while (range.findText(key[0])) {
range.pasteHTML(range.text.fontcolor(key[2]));
}
} else {
var s, n;
s = window.getSelection();
s.collapse(document.body, 0);
while (window.find(key[0])) {
var n = document.createElement("SPAN");
n.style.color = key[2];
s.getRangeAt(0).surroundContents(n);
}
}
}
}
</script>
java赋值给 keys数组 ----------->让“[ "和尚", "", "#ff0000" ],[ "负责", "", "#ff0ee0" ],[ "累死的", "", "#ff0eee" ],[ "问题", "", "#ff0eee" ]”是动态的。

将List<String> 转成json,传到界面。js中使用var arr = eval(‘${list}');将list转成js数组。
代码如下:

var keyList = eval('${keysList}');
var values = $("#paramsValues").val();

var noSet = [];

for(var i=0;i<keyList.length;i++){
if(values.indexOf(keyList[i])==-1){
noSet.push(keyList[i]);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-24
后台把list转成jsonArray,然后在前台解析,或者把[ "和尚", "", "#ff0000" ]里面的东西封装成对象,add到list中,前台直接循环,例如
for(var i in list){
var obj = list[i];
alert(obj.name+" "+obj.color);
//name,和color即为对象属性,实际上返回到前台的依然是json字符串

}
还有更直接的方法,就是在后台直接拼成字符串 然后前台split()
比如后台 String str = "和尚,, #ff0000"+"|"+"负责,, #ff0ee0" ;本回答被提问者采纳
第2个回答  2010-10-08
通常不会这么做的,又笨又难看而且容易出错!你这样写是不行的!

可以用ajax做,在后台给封装成json,然后js中用eval函数就可以使用了!!

ajax的话可以用jquery,json需要个jar包!
第3个回答  2010-10-08
将用到的对象封装起来,然后在前台遍历下即可。
相似回答