2013-11-27 30 views
1

我在這裏有點困惑。我試圖做一些基本的DOM操作 - 在<head>標籤上附加標題進行測試。這是我寫的:JS:追加元素頭 - 如何鏈接方法?

document.head.appendChild(document.createElement("title").appendChild(document.createTextNode("Test Title"))); 

但是,上述不起作用。如果我把它分開,它可以工作:

var node = document.createElement("title"); 
var text = document.createTextNode("Test title"); 
node.appendChild(text); 
document.head.appendChild(node); 

爲什麼會這樣,我錯過了什麼?

回答

8

方法鏈接使用前一個方法的返回值。

var chain = { 
    example: function (val) { 
     alert(val); 
     return this; 
    } 
}; 
chain.example('this').example('works'); 

example可以關閉example因爲return this返回其具有example方法的對象的被鏈接。

parent.appendChild(child)的情況下,返回值爲child,這意味着鏈接不會將元素添加到parent以代替後續元素將被嵌套。

+0

哦,謝謝,無法相信我錯過了! – Fygo

1

追加標題元素,然後將文本附加到附加的對象。注意parentheses-

警告 - title元素是一個特殊的情況下,只有一個標題元素是文檔的有效

document.head.appendChild(document.createElement("title")).appendChild(document.createTextNode("Test Title")); 
+0

是的,這正是我試圖達到的目標,但我弄亂了括號。謝謝! +1 – Fygo