在javascript中打印数组内部的对象

时间:2014-01-08 16:15:29

标签: javascript

我有一个名为 list 的数组,我正在输入几个对象。每个项目都有唯一的ID和标题。

var number = 0;
var list = [];
var item = {};
var i;

var compute = {
    number : 0,
    newItem : function (input) {
        for (i = 0; i < list.length + 1; i++) {
            var item = {
                id: number,
                title: input
            };
        }
        number++;
        list.push(item);
    }
};

我正在向数组中添加数据,如下所示:

compute.newItem("Something Important");
compute.newItem("Another thing"); 

我正在尝试将此数组的内容打印成HTML列表,如下所示:

<ul id="list">
    <li>Something Important</li>
    <li>Another thing</li>
</ul>

依此类推,将每个对象打印到自己的列表元素中。我不确定如何正确打印这个?有什么想法吗?

我认为这样的事情可能有效,但我有错误。

var content;
for (i = 0; i < list.length + 1; i++) {
    content += "<li>" + list[i] + "</li>";
}
document.getElementById("list").innerHTML = content;

错误是:无法设置属性'innerHTML'null

(请注意,我的javascript可能很简单......我对这种语言很新。)

1 个答案:

答案 0 :(得分:4)

HTML:

<ul id="list"></ul>

JavaScript:

var compute = {
    list : [],
    newItem : function (input) {
        this.list.push({
            id : this.list.length,
            title : input
        });
    },
    printList : function (el) {
        var ul;
        ul = el || document.createElement('ul');
        for (i = 0; i < this.list.length; i += 1) {
            ul.innerHTML += '<li>' + this.list[i].title + '</li>';
        }
        return ul;
    }
};

compute.newItem('foo');
compute.newItem('bar');
compute.printList(document.getElementById('list'));