Grails的ajax使用json格式返回,在js中构造字符串时若放入<g:link>标签,字符串构造就会错误
如下就会发生错误,导致回调函数无法执行
function show(obj){
var id=obj.value; $.post("rtstudent",{id:id},
function(data){
var datas=eval(data);
var str=""; $.each(datas,function(i,st){ str+='<tr align="center">';
str+='<td>'+st.id+'</td>';
str+='<td align="left">'+ st.name+'</td>';
str+='<td>'+ st.results+'</td>';
str+='<td><g:link controller="student" action="show" id="'+st.id+'">查看</g:link></td>'; str+='<td><g:link controller="student" action="delete" id="'+st.id+'" >删除</g:link></td>'; str+='</tr>'; }) $("#studentmain").html('');
$("#studentmain").html(str); } ,"json" ); } 字符串构造失败,引号的使用没有起到效果,可以将<g:link>标签再次拆开构造,让字符串构造成功,回调函数可以执行,但是<g:link>已经失效,失去了效果
str+='<td><'+'g:link controller="student" action="show" id="'+st.id+'">查看</‘+’g:link></td>'; str+='<td><g:link controller="student" action="delete" id="'+st.id+'" >删除</‘+’g:link></td>';
所以不推荐在js中使用<g:link>标签,可以使用a标签等