JavaScript - getElementById 不理解我的输入

标签 javascript

所以我有这段代码:

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/

相关文章:

javascript - 将自动加载器与 js 模块一起使用的好处?

javascript - 结束 client.on 函数

javascript - Javascript中左移 "Lsh"的计算顺序规则

javascript - AngularJS $http get 不起作用,但 $.ajax 起作用

javascript - 如何定位超出其各自功能范围的 "this"?

javascript - 如何在 macOS 上从 JXA/JavaScript for Automation 脚本运行内联 Applescript?

javascript - Mongodb递归搜索

javascript - 如何使用for循环增加div id名称和localStorage内容名称?

JavaScript:父窗口抛出的异常发生在子窗口

javascript - 如何使AWS S3请求可重试?