innerHTML将变量作为参数传递给onClick事件

时间:2016-04-08 14:22:10

标签: javascript html innerhtml

我必须使用innerHTML在onclick事件中将变量作为参数传递。这是我的代码

var seriesdel = document.getElementById('series_name').value;
document.getElementById('all_series').innerHTML +="<p>"+document.getElementById('series_name').value+" <button class='button' id='delete' onclick='deleteseries("+seriesdel+");' value='Delete'>Delete</button></p>";

如您所见,我尝试传递变量&#34; seriesdel&#34;在函数&#34; deleteseries&#34;但是我无法让它发挥作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

表单控件值是字符串。

如果你想在JavaScript中粘贴一个字符串值,你必须用引号括起来。

您省略了引号,因此输入的任何内容(除非是数字)都被视为变量名或语法错误。

添加引号。

尝试处理JavaScript中嵌入的HTML中嵌入的JavaScript(可能嵌入在HTML中)会让您头疼。请改用DOM。它更冗长,但更清晰。

var seriesdel = document.getElementById('series_name').value;
var paragraph = document.createElement('p');
paragraph.appendChild(document.createTextNode(seriesdel));
var button = document.createElement("button");
button.classList.add("button");
button.setAttribute("id", "delete");
button.value = "Delete";
button.appendChild(document.createTextNode("Delete"));
button.addEventListener("click", deleteHandler);
paragraph.appendChild(button);
document.getElementById('all_series').appendChild(paragraph);

function deleteHandler(event) {
    deleteseries(seriesdel);
}

答案 1 :(得分:-1)

由于您尝试传递字符串对象,因此需要在onclick函数调用中转义字符串: onclick='deleteseries(\""+seriesdel+"\");'

相关问题