我正在web应用程序上复制onclick文本,但是JavaScript的方式是连接我的字符串,形成li html元素,它正在替代“”我的元素选择器中''这是打破我的功能。我试图用字符串转义替换,但无济于事。在串联期间维护双引号
我的评论html是一个工作函数的例子,我打算做的事情。
var responseList = [
'Text',
'also text',
'Some text!',
'Some more text..'
];
var concatHTML = '';
var concatHTML2 = [];
function print(message, i) {
concatHTML += '\r<li>' + '<p id=\"p' + i + '\" onclick=\'copyToClipboard(\"#p' + i +"\')\'>" + message + "</p>\r";
console.log(concatHTML);
document.getElementById("respUL").innerHTML = concatHTML;
}
for (var i = 0; i < responseList.length; i++) {
print(responseList[i], i);
}
function copyToClipboard(element) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
}
<link href='https://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">
<h1>Click & Paste</h1>
<h2>Making a list of things to click on then paste</h2>
<ul id="respUL">
</ul>
<!-- <p id="p1" onclick="copyToClipboard('#p1')">Text
</p>
<p id="p2" onclick="copyToClipboard('#p2')">Hi, I'm the 2nd TEXT</p><br/> -->
</div>
你有一个错字:'我+“\ ')\' >“+ message'应该是'i +”\“)\”> + message'另外,您不必在双引号内跳过单引号。 –
我强烈建议您重构这一点,不必将字符串连接的html插入到DOM中,像t这样的错误这样做时并不罕见。您可能会考虑在DOM中隐藏模板元素,然后克隆它,改变它,并将它们全部附加到代码中。 – raykrow