我正在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