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

innerHTML passing variables as parameters in onClick event

本文关键字:变量 参数传递 onClick 事件 innerHTML      更新时间:2024-03-08

我必须使用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>";

正如你所看到的,我试图在函数"deleteseries"中传递变量"seriesdel",但我就是无法使其工作。

谢谢你的帮助。

Form控件值是字符串。

当你想在JavaScript中粘贴一个字符串值时,你必须用引号把它括起来。

您已经省略了引号,所以输入中键入的任何内容(除非是数字)都将被视为变量名或语法错误。

添加引号。


试图处理嵌入HTML的JavaScript嵌入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);
}

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