首页 > 解决方案 > 在grails gsp标签中输入一个jquery句子

问题描述

当我尝试在 grails<g:link>标记中使用 jQuery 语句时出现多重编译错误

var ul = $("#authorList > ul");
ul.append('<li><g:link action="show" controller="author" id="'+$('#authorID').val()+'">+'+$('#authorField').val()+'</g:link></li>')

我只在 id="" 属性中遇到 jquery 错误,用这个

ul.append('<li><g:link action="show" controller="author" id="">+'+$('#authorField').val()+'</g:link></li>')

该页面正在运行,但我无法获取动态链接,它的语法如何正确?


URI:/ComplexTables/book/create Class
org.codehaus.groovy.control.MultipleCompilationErrorsException
消息:启动失败:19:美元符号后的字符串主体字符非法;解决方案:要么转义文字美元符号 "\$5",要么将值表达式 "${5}" @ line 19, column 210. l()\'"', 35, it) { return "'+$(' #authorI ^ 1 个错误


grails-app\views\book_form.gsp 的第 35 行左右

function appendAuthor(ev) {
34:        var ul = $("#authorList > ul");
35:        ul.append('<li><g:link action="show" controller="author" id="'+$('#authorID').val()'">+'+$('#authorField').val()+'</g:link></li>')
36:    }
37:</script>

标签: javascriptjquerygrailsgroovysyntax

解决方案


我不知道 GSP 但一般 ID 不能以数字开头。

"使用除 ASCII 字母、数字、'_'、'-' 和 '.' 之外的字符。可能会导致兼容性问题,因为它们在 HTML 4 中是不允许的。尽管在 HTML 5 中取消了此限制,但 ID 应以字母开头以确保兼容性。”

如果你只使用 DOM getElementById() 方法而不是 jQuery 不是更好吗

ul.append('<li><g:link action="show" controller="author" id="sth_'+document.getElementById('authorID').value+'">+'+document.getElementById('authorID').value+'</g:link></li>')

推荐阅读