Я создаю строку таблицы со ссылкой, как показано ниже:
"<td>"+table.rows[i].c[0].v+"<a href='#' onclick='loadForm("+table.rows[i].c[2].v+")'> My Link</a></td>" +
table.rows[i].c[2].v = 'my stuff'.
Однако при осмотре он генерировался как
<a href = "#" onclick = "loadForm(my stuff)"> My Link</a>
Что не работает, так как «мой материал» не заключен в кавычки, чтобы сделать его строкой. Как мне сделать мои вещи строкой в этой ситуации?
Спасибо!
Вы должны делать это как струны? Все намного проще, если вы создаете элементы как объекты, а затем используете element.addEventListener() для добавления обработчика кликов.



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


Краткий ответ: заключите аргумент в кавычки, используя обратную косую черту \:
"<td>"+table.rows[i].c[0].v+"<a href='#' onclick='loadForm(\""+table.rows[i].c[2].v+"\")'> My Link</a></td>" +
Длинный ответ: не создавайте HTML-элементы со строками, это неэффективно и плохо обслуживается. Вместо этого используйте стандартные функции DOM:
var td = document.createElement('td');
var a = document.createElement('a');
a.href = '#';
a.onclick = function() { loadForm(table.rows[i].c[2].v); }
a.textContent = ' My Link';
td.appendChild(a);
... а затем вы можете использовать appendChild(), чтобы добавить свой td в строку, которой он принадлежит. Я знаю, что он длиннее и выглядит сложнее, но много легче отлаживать и поддерживать. Существуют также библиотеки, такие как jQuery, которые помогают сделать это быстрее и проще. Я определенно предлагаю потратить время и силы, чтобы прочитать об этом. Погуглите "HTML DOM" и поищите учебники, в MDN обычно есть довольно хорошие материалы.
Думаю, здесь подойдет Шаблонный литерал:
`<td> ${table.rows[i].c[0].v}<a href='#' onclick='loadForm("${table.rows[i].c[2].v}")'> My Link</a></td>`
Кавычки не являются частью строкового значения, они являются разделителями для синтаксического анализатора, чтобы узнать, начинается ли строковое значение и где оно заканчивается.