js中构造字符串若放入Grails中gsp的<g:link>标签出错

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标签等 




原文地址:https://www.cnblogs.com/xiaoyangyi/p/6236412.html