我想在文档中添加一些文本,然后单击这些文本以使用不同的字符串参数启动一些函数。我不知道为什么以下功能无法使onclick工作:var strings = ["string1", "string2", "string3"];function show (s) { alert(s);}for (var i = 0; i < strings.length; i++) { var elt = document.createElement('text'); elt.innerHTML = strings[i]; elt.onmouseover = ""; elt.style = "cursor: pointer;"; var s = "show(" + "'" + strings[i] + "'" + ")"; elt.onclick = s; document.body.appendChild(elt);}这是JSBin。此外,我想逐行放置string1,string2和string3(即在其中插入<br>),并且始终放在<div class="padding">BEGIN ...</div>内(我不认为当前它在此)。有谁知道如何实现这一目标? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 将"span"替换为"text"作为.createElement()的参数;设置"<br>"元素的strings[i]时,在.innerHTML之后添加elt;将onclick设置为Function.prototype.bind(),将elt作为上下文,将strings[i]作为参数设置为show函数;创建引用.padding元素的变量,以将创建的元素附加到.padding元素调用.appendChild()链接到.padding元素而不是document.bodyvar strings = ["string1", "string2", "string3"];var padding = document.querySelector(".padding");function show (s) { console.log(event.type); alert(s);}for (var i = 0; i < strings.length; i++) { var elt = document.createElement("span"); elt.innerHTML = strings[i] + "<br>"; elt.style.cursor = "pointer"; elt.onclick = show.bind(elt, strings[i]); padding.appendChild(elt);} <div class="padding"> BEGIN <br> </div> (adsbygoogle = window.adsbygoogle || []).push({});