繁体   English   中英

我试图将变量作为文字字符串传递给JS创建的内部html函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM