问题描述
如果列表的每一项都比较复杂,每插入一条数据,都要把html拿来填空,而且还可能会出错,当样式发生更改后,JS也得做调整。如:answers = "";for(var i = 0; i< answerArray.length; i++){ answer = "<div>"+id+"</div>";}answers += answer;这种操作,有办法以一种比较优雅的方式处理么,望指教,谢谢 问题补充:andy_javahome 写道
解决方案
这种将css和html都写在js里本身就不优雅,也不规范。应当把数据用标签或如ognl和el等表达式语言解析到jsp中,在通过js将这些小jsp加载到你想要的位置。这样js和html就分离开了,同事样式你可以在css里写好 ,可以在html里写死或者用js动态调用都可以。像你这种拼接如果是新浪首页直接就把程序员给写死了。当你进新浪首页的时候部分数据马上就能取到,但下边的都是动态加载的。实际上应该放入js异步加载的。
解决方案二:
列表是下拉框:select.options.add(new Option());列表是网页块:用ajax局部更新。
解决方案三:
$("#answer").each(function(){ $("<div />") .val(id) .appendTo($(this)) });应该是 text() 而不是 val () 吧。另外其实用 wrap () 就可以了,更简洁
解决方案四:
上面的代码可能与你的需要不同改成像这样的.$.each(answers,function(){ .........});
解决方案五:
$("#answer").each(function(){ $("<div />") .val(id) .appendTo($(this))});