2014-09-04 91 views
0

新手问题 - 此代码足以创建四个列表项吗?或者我应该使用documentFragment吗?该代码似乎工作正常 - JsFiddleDOM操纵

创建列表和李变量

var list = document.getElementById("myList"); 
var li = null; 

生成的X列表元素和同伴文本节点的数量

for(var i=1; i<=4; i++){ 
var li = document.createElement("li"); 
li.appendChild(document.createTextNode("Number " + i)); 

加李列出

list.appendChild(li); 

}

+0

你链接的jsfiddle似乎与这个问题没有任何关系。你正在用**类**“myList”创建一个列表,然后尝试通过id访问它,这将不起作用。 – Pointy 2014-09-04 13:13:47

+0

如何通过没有人的ID获取元素甚至可以工作?无论如何,确定它是否“足够雄辩”的标准是什么? – 2014-09-04 13:13:57

+0

@很抱歉,我刚更新了它 – samsos 2014-09-04 13:44:20

回答

2

其实,有一个错误,因为你要添加的li S到body代替ul 也标记没有很好地建立,改变

<ul class="myList"></ul> 

<ul id="myList"></ul> 

要使用id然后:

var list = document.getElementById("myList"); 
var li = null; 

for(var i=1; i<=4; i++){ 
    var li = document.createElement("li"); 
    li.appendChild(document.createTextNode("Number " + i)); 
    //document.body.appendChild(li); **error here** 
    list.appendChild(li); //fix 
} 
4

基础的耳鼻喉科对你提供的JSFiddle演示非常感兴趣:不。你目前拥有的语义不正确。您目前正在追加你libodyul元素:

​​

变化:

document.body.appendChild(li); 

要:

list.appendChild(li); 

JSFiddle demo


至于你在问题中所提供的代码,你也需要改变它,这样你的li元素,会添加到您的ul元素。您还需要将class更改为ID,因为getElementById("myList")会拉取ID为“myList”的元素,而您当前的ul没有此ID。