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>");

            }
        });
    }    

キャッチされていない SyntaxError: 予期しないトークン)が href の近くにあります

ここで何が問題なのですか...上記のURLを生成する動的リンクを作成する他の方法はありますか?

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

属性を囲む二重引用符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 に答える
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 に答える