Javascript 为什么同一函数中的var没有定义?

Javascript 为什么同一函数中的var没有定义?,javascript,html,Javascript,Html,我有这样一个代码: window.onload=函数(){ var wordlist=[“A”、“BB”、“CCC”、“DDDD”]; 对于(i=0;i

我有这样一个代码:


window.onload=函数(){
var wordlist=[“A”、“BB”、“CCC”、“DDDD”];
对于(i=0;i<26;i++){
var x=document.createElement(“输入”);
x、 setAttribute(“类型”、“按钮”);
x、 setAttribute(“value”,String.fromCharCode(i+65));
x、 setAttribute(“id”,String.fromCharCode(i+65));
x、 setAttribute(“onclick”、“isTOF(this.id,wordlist[3])”;
文件.正文.附件(x);
}
}
函数isTOF(v,word){
console.log(word);
}

参数字符串未正确连接,应为:

x.setAttribute("onclick", "isTOF(this.id, '" + wordlist[3] + "')")
虽然我更喜欢使用允许嵌入表达式的:


window.onload=函数(){
var wordlist=[“A”、“BB”、“CCC”、“DDDD”];
对于(i=0;i<26;i++){
var x=document.createElement(“输入”);
x、 setAttribute(“类型”、“按钮”);
x、 setAttribute(“value”,String.fromCharCode(i+65));
x、 setAttribute(“id”,String.fromCharCode(i+65));
x、 setAttribute(“onclick”,“isTOF(this.id,${wordlist[3]}')`);
文件.正文.附件(x);
}
}
函数isTOF(v,word){
console.log(word);
}

如何编辑我的代码?使用Javascript而不是我的答案中的HTML属性附加处理程序,并且
wordlist
将在侦听器函数的范围内。(或者,将
wordlist
global,但不建议这样做)@CertainPerformance我不明白你的意思,因为我是编程新手。你能告诉我更多细节吗?可能是因为单词列表是在onload函数中定义的。这超出了实际按钮的范围。尝试将其连接到窗口
window.wordlist=..
而不是var。只需在链接问题中复制我的答案,除了你的
wordlist
之外,它也可以工作
${wordlist[3]}
?这不是jquery吗?你能用javascript写出来吗?@HoseongJeon,不,不是。它是模板字符串语法的一部分……请注意它是如何在back tick中使用的……哦,与
x.setAttribute(“onclick”、“isTOF(this.id,“+wordlist[3]+”)相同
?@HoseongJeon,不完全是这样,你必须用引号括起来,比如……
x.setAttribute(“onclick”、“isTOF(this.id)”、“+wordlist[3]+”)”)”
…才能将其作为字符串传递……这就是为什么我更喜欢模板文本……谢谢。好的。无论如何,非常感谢:)你又帮了我!