Я получаю ошибку множественной компиляции, когда пытаюсь использовать предложение jQuery в теге Grails <g:link>
var ul = $("#authorList > ul");
ul.append('<li><g:link action = "show" controller = "author" id = "'+$('#authorID').val()+'">+'+$('#authorField').val()+'</g:link></li>')
Я получаю сообщение об ошибке только с jquery внутри атрибута id="" с этим
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
Message: startup failed: 19: illegal string body character after dollar sign; solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 19, column 210. l()\'"', 35, it) { return "'+$('#authorI ^ 1 error
Около строки 35 файла grails-app\views\book_form.gsp
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>
поместите js во внешний ресурс, и все будет хорошо
используя внешний файл, gsp не компилирует тег <g:link, размещает тег <g:link непосредственно в html
я попробую просто использовать обычный <a href = ""> без тега gsp
использовать обычный <a> сработало, я хотел бы запросить у сервера тег с <g:link>, но я думаю, что это невозможно



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не знаю GSP, но обычно идентификатор не может начинаться с цифры.
"Using characters except ASCII letters, digits, '_', '-' and '.' may cause compatibility problems, as they weren't allowed in HTML 4. Though this restriction has been lifted in HTML 5, an ID should start with a letter for compatibility."
И не лучше ли было бы использовать просто метод 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>')
в этом случае атрибут id не является обычным идентификатором всех тегов, в этом теге gsp вы помещаете в id первичный ключ элемента, который хотите показать, gsp компилирует этот тег в обычный тег <a href = "" с маршрут к элементу, который должен возвращать <a href = "some route/show/dinamyc id, полученный с помощью jquery"
я пробовал с document.getElementbyId, и gsp также возвращает ошибку компиляции. Ожидается '=' после имени атрибута (action = "show" controller = "author" id = "'+document.getElementById("authorID").value+'")
gsp предварительно скомпилированы на сервере. Я был бы очень удивлен, что jQuery сможет это сделать.