我生成一个包含如下链接的表格行:
"<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>
哪个不起作用,因为'我的东西'没有引号围绕它使它成为一个字符串。在这种情况下如何让我的东西成为一个字符串?
谢谢!
答案 0 :(得分:0)
简短回答:在参数的字符串中加上引号,使用反斜杠\
进行转义:
"<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通常有很好的东西。
答案 1 :(得分:0)
我认为Template Literal可以在这里工作:
`<td> ${table.rows[i].c[0].v}<a href='#' onclick='loadForm("${table.rows[i].c[2].v}")'> My Link</a></td>`