2014-09-04 89 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。