所以我有这段代码:
window.onload = make_buttons ('"calc"');
function make_buttons (id) {
console.log (id);
var input = document.createElement("INPUT");
document.getElementById(id).appendChild(id.input);
for (var i = 0;i < 10; i++){
var btn = document.createElement ("BUTTON");
var t = document.createTextNode (i);
btn.appendChild(t);
document.getElementById(id).appendChild(id.btn);
}
};
基本上,我将 div 元素的 ID 插入 make_buttons ()
函数中,然后它应该创建我要求它为我创建的所有内容。
但出于某种原因,此方法向我抛出一个错误,提示 getElementById
被赋予了 NULL 值。 console.log (id)
显示 id 是“calc” getElementByID
应该在 () 内包含“calc”。为什么会这样?
此外,当我创建了所有按钮后,我是否可以在 .append.Child()
之后添加一个 .onclick=
以使其具有点击事件还?
最佳答案
1) 控制台始终显示字符串的引号,这并不意味着您的字符串包含引号。您的 ID 是 calc
,而不是 "calc"
。
2) 正如 Felix 所注意到的,您正在将函数的结果而不是函数的结果分配给 window.onload
。
替换
window.onload = make_buttons ('"calc"');
与
window.onload = function(){ make_buttons ('calc'); }
关于JavaScript - getElementById 不理解我的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21802154/