0

我需要使用 javascript 动态创建一个按钮。所以我在“脚本”标签之间写了这些代码。

window.onload = function () {
    var newButton = document.createElement('input');
    newButton.type = 'button';
    newButton.value = 'What's the day today?';
    newButton.id = 'btn1';
    newButton.onclick = myfunction();
    div1.appendChild(newButton);
}
function myfunction() {
    var x = new Date().getDay();
    switch (x) {
        case 0: alert("sunday"); break;
        case 1: alert("monday"); break;
        case 2: alert("tuesday"); break;
        case 3: alert("wednesday"); break;
        case 4: alert("thursday"); break;
        case 5: alert("friday"); break;
        case 6: alert("saturday"); break;

    }
}

加载页面时,“myfunction()”函数会自动运行。之后,当我按下此按钮时,什么也没有发生。我的错误是什么?

4

1 回答 1

2

你需要改变

newButton.onclick = myfunction;

当你这样做时newButton.onclick = myfunction();,它执行myfunction然后将它返回的值分配给onclick处理程序,在这种情况下是未定义的。您需要做的是将函数引用传递给onclick属性

另外我假设以下是复制粘贴更改

newButton.value = 'What's the day today?'; // you need to escape ' with \' or use "What's the day today?"
于 2013-07-03T14:30:18.250 回答