$(document).ready(function () {
<%
if(rolesList!=null){
StringBuffer sb = new StringBuffer();
for(Role r:rolesList){
sb.append("+"+"'<div>'+'"+r.getRoleName()+"'"+"+' '+"+"'"+r.getDisplayName()+"'+'</div>'"); // 输出若干行代码
}
String html = sb.toString().substring(1);
%>
//$("#rolesList").html('<div>111</div>'); // 111
//$("#rolesList").html('<div>aaa</div>'); // aaa
//$("#rolesList").html('<div>+'111'+</div>'); // 111
//$("#rolesList").html('<div>+'aaa'+</div>'); // error
//$("#rolesList").html("<div>"+"'111'"+"</div>"); // '111'
//$("#rolesList").html('<div>' + 'aaa' + '</div>'); // aaa
//$("#rolesList").html("<div>"+"'aaa'"+"</div>"); // 'aaa'
//$("#rolesList").html("<div>" + "'aaa'" + "</div>" + "<div>" + "'bbb'" + "</div>"); // 'aaa' 'bbb'
$("#rolesList").html(<%=html%>);
<%}%>
});
结果示例:
AAA 测试角色
11 11
bbb 测试角色2
333 333
在js中用java语言结合html最容易让人搞混出错了,我总结出几点错误经验:
1、$("#ID").html() 的括号中最外层,必须是单引号或者双引号,即 $("#ID").html("xxx") ; $("#ID").html('xxx')
2、单双引号要交替包裹,不能用双引号包裹双引号,也不能单引号包裹单引号
3、要注意java语言中字符串需要用双引号包裹,但字符串变量在js中的值是不带最外层双引号的,
例如String str = "aaa", 但是 $.html(<%=str%>) = $.html(aaa); 若要得到aaa,则需要 $.html('+<%=str%>+');