JavaScript - getElementById不理解我的输入

时间:2014-02-15 18:59:01

标签: 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);    
    }
};

基本上我在make_buttons ()函数中插入div元素的id,然后它应该创建我要求它为我创建的所有内容。 但由于某种原因,这种方法会抛出一个错误,表示getElementById被赋予NULL值。 console.log (id)显示id为“calc”getElementByID应该在()内部具有“calc”。为什么会这样?

此外,当我创建所有thoes按钮时,我是否可以在.onclick=之后添加.append.Child()以使其具有点击事件?

4 个答案:

答案 0 :(得分:3)

1)控制台始终显示字符串的引号,这并不意味着您的字符串包含引号。您的ID为calc,而不是"calc"

2)正如Felix所注意到的那样,你将window.onload分配给函数的结果而不是函数。

替换

window.onload = make_buttons ('"calc"');

window.onload = function(){ make_buttons ('calc'); }

答案 1 :(得分:2)

id.input

上的问题是document.getElementById(id).appendChild(id.input);

您正在传递字符串作为ID。但在父元素中附加id.input是不正确的。

答案 2 :(得分:0)

这可能对您有用,请尝试在加载时使用正文

<body onload="make_buttons('calc');">


</body>

答案 3 :(得分:0)

您尚未将ID分配给您正在创建的输入。输入在文档中,但在您尝试访问时,它没有您传递的ID。