[英]I am trying to pass a varible as a literal string to a function from JS created inner html
我想做的是将字符串传递给内部html,以便它可以作为函数中的参数。>>>> onclick ='deleteme('“ + hotlist [i] +”')<<<<不管用。 我必须弄清楚如何将该变量转换为字符串并将其放入内部html。 当我将参数保留为空白时,实际上会触发deleteme()函数,但参数未定义。 对于此循环创建的每个按钮,我需要每个参数都唯一。
function myhotlist() { var hotlist = document.cookie.split(";"); var text = ""; for (i = 0; i < hotlist.length; i++) { text += hotlist[i] + " <input type='submit' onclick='deleteme('"+hotlist[i]+"') value='delete' ><br>"; } document.getElementById("hotrack").innerHTML= text; }
您最好为此使用DOM,这样您就不会忽略任何诱人的逃避麻烦。
这样的事情应该起作用:
var container = document.createElement('div'),
i, el,
hotlist = document.cookie.split(";");
for (i = 0; i < hotlist.length; i++) {
el = document.createElement('input');
el.setAttribute('type', 'submit');
el.onclick = function() {
deleteme(i);
}
el.setAttribute('value', "Delete " + i);
container.appendChild(el);
}
document.body.appendChild(container);
当然,这里有大量的库可以为您提供帮助(从jQuery到React JSX),但是如果您掌握了DOM的基本知识,您实际上就不需要这些库,并且您实际上可以更好地理解JavaScript与视觉元素进行交互,反之亦然。
最终按照建议使用DOM进行了此操作。
function myhotlist() { var hotlist = document.cookie.split(";"); var funname = ""; var newline= new Array(); for (i = 0; i < hotlist.length; i++) { document.getElementById("hotrack").innerHTML += hotlist[i]; newline[i] = document.createElement("input"); newline[i].setAttribute("type", "submit"); var namey ="delete"+hotlist[i]; newline[i].setAttribute("id", namey); newline[i].setAttribute("value", "[X]"); funname = "delme('" + hotlist[i] + "')"; newline[i].setAttribute("onclick", funname); document.getElementById("hotrack").appendChild(newline[i]); document.getElementById("hotrack").innerHTML += "<br>"; } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.