0

在我的 gsp 页面中,我试图在页面加载期间使用 jquery 动态创建链接..

            <r:script>

            function loadEmailButtons(mailTask,rowIndx,trainingIds){
            alert(rowIndx);
                $.each(mailTask, function(index, value) {
                    if(value ==0){
                        $(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><g:link action='mail' params='[mailType:'Training_Information']'  controller='mailDraft'  id='1'>Info</g:link></span></td>");
                    }
                });
            }


            $(document).ready(function(){   

                var mailDraftReminderInstance = ${mailDraftReminderInstance};
                loadEmailButtons(mailDraftReminderInstance, 2,trainingInstanceIds);
            });
 </r:script>            

但我收到错误:

在控制台中我可以看到

     function loadEmailButtons(mailTask,rowIndx,trainingIds){
        $.each(mailTask, function(index, value) {
            if(value ==0){
                $(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href="/opal/mailDraft/mail/1?mailType=Training_Information">Info</a></span></td>");

            }
        });
    }    

Uncaught SyntaxError: Unexpected token ) near href

这里有什么问题......有没有其他方法可以创建产生上述网址的动态链接?

4

3 回答 3

1

<g:link>标签正在生成一个在其属性值周围使用双引号的锚点。代替

<g:link action='mail' params='[mailType:'Training_Information']'  controller='mailDraft'  id='1'>Info</g:link>

尝试这个:

<a href='${g.createLink(action:'mail', params:[mailType:'Training_Information'], controller:'mailDraft', id:'1').encodeAsJavaScript()}'>Info</a>

encodeAsJavaScript将以适合在 JS 字符串文字中使用的形式转义引号之类的内容,并且您应该在要包含在 JavaScript 字符串中的任何生成值上使用它。有关更多详细信息,请参阅Grails 用户指南中有关编解码器的部分。

于 2012-08-16T08:20:48.957 回答
0

尝试

$(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href="${createLink(action:'mail', params:'[mailType:'Training_Information']', controller:'mailDraft', id:'1')}">Info</a></span></td>");
于 2012-08-16T06:57:35.000 回答
0

href您在属性周围的双引号是问题所在。width在属性中使用单引号,那么它应该可以工作:

$(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href='/opal/mailDraft/mail/1?mailType=Training_Information'>Info</a></span></td>");
于 2012-08-16T06:55:25.777 回答