我在设置innerHTML时正在努力调用方法。 如果有一个我忽略的直截了当的答案,我道歉,但此刻我被困住了。
请看下面的代码:
"<a href='#' onclick='removeEntry('" + element.id + "')'><span class='fa fa-times'></span></a>"
你可以看到关于报价的混乱。 是否有第三种方式来输入引号或类似的东西,可以让我调用&#34; removeEntry(element.id)&#34;?我需要在element.id周围引用以调用removeEntry。关于如何以不同的方式解决这个问题的任何建议?
答案 0 :(得分:0)
你应该替换
"<a href='#' onclick='removeEntry('" + element.id + "')'><span class='fa fa-times'></span></a>"
与
"<a href='#' onclick='removeEntry(\"" + element.id + "\")'><span class='fa fa-times'></span></a>"
事实上,问题在于您当前的代码,a
代码onclick
属性将看起来像onclick='removeEntry('myId')'
请注意,这是一个简单的简单引号,打破了你的函数调用。用转义双引号替换id
简单引号,并且它会给你onclick='removeEntry("myId")'
,这很好:)
修改:无论如何,如果您要定位最近的浏览器,可以尝试使用ES6 template literals,这将为您提供以下内容:
var html = `<a href="#" onclick="removeEntry('${element.id}')"><span class="fa fa-times"></span></a>`;
这有助于避免与您的报价挣扎。请注意,模板文字中的变量包含看起来像PHP。
答案 1 :(得分:0)
'<a href="#" onclick="removeEntry(' + element.id + ')">
<span class="fa fa-times"></span>
</a>'
这应该可行。 您可以在单引号中编码双引号,并且您希望将整个表达式作为字符串。因此,带有变量的字符串可以写为 string1 = string2 + variable + string3;
或者对于JavaScript中的多行字符串,您可以使用后退标记。
`<a href="#" onclick="removeEntry(' + element.id + ')">
<span class="fa fa-times"></span>
</a>`
答案 2 :(得分:0)
此:
"<a href='#' onclick='removeEntry('" + element.id + "')'><span class='fa fa-times'></span></a>"
将创建一个这样的元素:
<a href='#' onclick='removeEntry('someId')'><span class='fa fa-times'></span></a>
哪个不对。你需要做的是:
"
(但您必须逃避它们):"<a href='#' onclick='removeEntry(\"" + element.id + "\")'><span class='fa fa-times'></span></a>"
创建一个这样的元素:
<a href='#' onclick='removeEntry("someId")'><span class='fa fa-times'></span></a>
\
引号中添加反斜杠'
(您还必须转义反斜杠):"<a href='#' onclick='removeEntry(\\'" + element.id + "\\')'><span class='fa fa-times'></span></a>"
创建一个这样的元素:
<a href='#' onclick='removeEntry(\'someId\')'><span class='fa fa-times'></span></a>