创建一个将页面初始化为特定状态的按钮

时间:2015-04-18 00:36:54

标签: javascript html

最初我的页面有几个按钮和一个表。我可以在表格中添加/删除行。我想创建另一个具有页面初始状态的按钮,即按钮和空表。

我的javascript:

function initialize_page() {
    localStorage.clear()
    var preambula = '<button type="button" id="create_row">Create row</button> \
                    <button type="button" id="remove_row">Delete row</button><br> \
                    <button type="button" id="initialize">New Table</button><br> \
                    <table id="main_table"> \
                      <tr> \
                        <td>#</td> \
                        <td>Name</td> \
                        <td>Pref.1</td> \
                        <td>Pref.2</td> \
                        <td>Pref.3</td> \
                      </tr> \
                    </table>'
    var div = document.createElement('div');
    div.innerHTML = preambula;
}
initialize_page();

document.getElementById('initialize').onclick = initialize_page;

然而,它说:Cannot set property 'onclick' of null

我的任务很简单:我有initiale html,然后我可以添加/删除行,当我按下初始化按钮我想回去初始html。最简单的方法是什么? (希望不使用jQuery)

3 个答案:

答案 0 :(得分:1)

你需要一些东西来附加你创建的div元素。

var div = document.createElement('div');
div.innerHTML = preambula;
document.getElementById('append-table').innerHTML = '';
document.getElementById('append-table').appendChild(div);

我在这里为你创造了一个小提琴:http://jsfiddle.net/6x7jd5od/

答案 1 :(得分:1)

您的initialize元素尚不存在,因为它不在DOM中,因此getElementById()无法找到它。

这是因为你创建了一个div元素,它包含你的preambula html,但是你并没有在DOM中附加任何div元素。

您需要添加以下内容:

    document.body.appendChild(div);

initialize_page功能中。

答案 2 :(得分:0)

输入不在文档中。您创建的DIV仅存在于JS中,它不会在任何地方添加到文档中。