我有一个名为 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可能很简单......我对这种语言很新。)
答案 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'));