Grails的ajax使用json格式返回,在js中构造字符串时若放入<g:link>标签,字符串构造就会错误
如下就会发生错误,导致回调函数无法执行
1 function show(obj){ 2 var id=obj.value; 3 4 $.post("rtstudent",{id:id}, 5 function(data){ 6 var datas=eval(data); 7 var str=""; 8 9 $.each(datas,function(i,st){ 10 11 str+='<tr align="center">'; 12 str+='<td>'+st.id+'</td>'; 13 str+='<td align="left">'+ st.name+'</td>'; 14 str+='<td>'+ st.results+'</td>'; 15 str+='<td><g:link controller="student" action="show" id="'+st.id+'">查看</g:link></td>'; 16 17 str+='<td><g:link controller="student" action="delete" id="'+st.id+'" >删除</g:link></td>'; 18 19 str+='</tr>'; 20 21 22 23 }) 24 25 $("#studentmain").html(''); 26 $("#studentmain").html(str); 27 28 } ,"json" 29 30 ); 31 32 33 }
字符串构造失败,引号的使用没有起到效果,可以将<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标签等