在DOM上单击按钮后如何调用函数

时间:2014-05-13 17:31:19

标签: javascript function dom button onclick

我有一个测试按钮设置,点击它时可以工作,它可以显示警告或确认窗口。但是我希望它显示一个项目列表,我有列表的代码,但我似乎无法在单击按钮时启动它。我正在使用所有DOM,因此不需要jquery。谢谢

var creatbtndiv = document.createElement("div");
var creatbtn = document.createElement("button");
creatbtn.innerHTML = "Click Me";

creatbtndiv.appendChild(creatbtn);

document.body.appendChild(creatbtndiv);



var list = function (name) {
    var creatDiv = document.createElement("div");
    creatDiv.id = "submenudiv";
    creatDiv.className = "submenudiv";

    var creatul = document.createElement("ul");
    for(i = 0; i < 5; ++i){
    li = doument.createElement("li");
    li.innerHTML = "Submenu" + index;
    creatul.appendChild(li);
    }

    creatDiv.appendChild(creatul);

    document.body.appendChild(name);


};



creatbtndiv.onclick = function () {
    var alert = confirm("yes master");
    list();
};

4 个答案:

答案 0 :(得分:1)

您的代码上存在一些语法错误。与doument一样,并使用变量index,它应该是i。在List方法的最后,在document.body.appendChild上,您应该传递creatDiv作为参数。
看起来像一些CopyPaste错误了......

http://jsfiddle.net/ayvNZ/


这是工作代码:

var creatbtndiv = document.createElement("div");
var creatbtn = document.createElement("button");
creatbtn.innerHTML = "Click Me";

creatbtndiv.appendChild(creatbtn);

document.body.appendChild(creatbtndiv);



var list = function () {
    var creatDiv = document.createElement("div");
    creatDiv.id = "submenudiv";
    creatDiv.className = "submenudiv";

    var creatul = document.createElement("ul");
    for(i = 0; i < 5; ++i){
        li = document.createElement("li");
        li.innerHTML = "Submenu" + i;
        creatul.appendChild(li);
    }

    creatDiv.appendChild(creatul);
    document.body.appendChild(creatDiv);
};



creatbtndiv.onclick = function () {
    var alert = confirm("yes master");
    list();
};

答案 1 :(得分:1)

这是一个正确的小提琴,你的代码中有一些错误。 http://jsfiddle.net/8LZKc/

li = doument.createElement("li"); <-- should be document

index未定义,您需要i

name不是元素,您希望creatDiv存在内容

答案 2 :(得分:0)

for(i = 0; i < 5; i++){
li = document.createElement("li");
li.innerHTML = "Submenu" + i; <----------- Replace index with "i"
creatul.appendChild(li);
}

creatDiv.appendChild(creatul);

document.body.appendChild(creatDiv); <----------- Replace "name" with "createDiv"

答案 3 :(得分:0)

文档在列表项循环中拼写错误。索引不在任何地方使用,切换为使用&#39; i的索引器。名称参数未使用或提供值,但creatDiv是您为列表创建的目标元素。

var creatbtndiv = document.createElement("div");
var creatbtn = document.createElement("button");
creatbtn.innerHTML = "Click Me";

creatbtndiv.appendChild(creatbtn);

document.body.appendChild(creatbtndiv);

var list = function (name) {
    var creatDiv = document.createElement("div");
    creatDiv.id = "submenudiv";
    creatDiv.className = "submenudiv";

    var creatul = document.createElement("ul");
    for (i = 0; i < 5; ++i) {
        li = document.createElement("li");
        li.innerHTML = "Submenu" + i;
        creatul.appendChild(li);
    }

    creatDiv.appendChild(creatul);

    document.body.appendChild(creatDiv);
};



creatbtndiv.onclick = function () {
    var alert = confirm('yes master');
    list();
};