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

innerHTML passing variables as parameters in onClick event

我必须使用 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",但我无法使其正常工作。

感谢您的帮助。

表单控件值是字符串。

如果您想在 JavaScript 中添加一个字符串值,您必须用引号将其括起来。

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

添加引号。


试图处理JavaScript embedded in HTML embedded in JavaScript(很可能是embedded in 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+"\");'