2012-10-31 120 views
2

我們很多非jQuery的javaScript開發人員,一直在使用domElement.setAttribute及其姊妹函數來破解無數dom元素,爲所有互聯網永恆。html + javascript中的屬性命名空間是什麼? (setAttributeNS)

吧,CSS,DOM類名,存儲可變數據/檢索等...

var b = document.getElementById("someDiv"); 
b.setAttribute("align", "center"); 

那麼,有什麼目的/實際利用其domElement.setAttributeNS變異的?這個問題是關於網絡瀏覽器的顯示/使用。而不是在XML的上下文中。其中setAttributeNS有很多用途。

var d = document.getElementById("someDiv"); 
d.setAttributeNS("http://www.mozilla.org/ns/specialspace", "align", "center"); 

回答

2

在HTML文檔(即文檔對象由text/html解析器創建)真的沒有很多用途setAttributeNS

但如果看看HTML5分析器需要分析國外內容時該怎麼辦(即SVG ABD MATHML),我們發現this table: adjust foreign attributes

所以它會自動移動,重命名一些屬性進入的XLink,XML和xmlns命名空間。當你通過像setAttribute和setAttributeNS這樣的函數來操作DOM時,自動移動和重命名將不會發生,因此爲了將屬性放入正確的命名空間,需要使用setAttributeNS來創建和修改它們。

xlink:href可能是最常見的這些要經由setAttributeNS()在XML的上下文

2

domElementhtmlElement

當您使用使用來自多個名稱空間的元素的XML構建的DOM時,它非常有用。

(如果你想知道爲什麼命名空間是有用的,然後see this question

+0

設置。我會理解的,然而MDN上的例子明確地使用NS來進行顯示操作。 (第二例)。其中我無法掌握 – PicoCreator

+0

他們正在使用描述該示例演示文稿的XML格式。有很多不同的XML格式可以做到這一點。 – Quentin

+0

嗯,我猜...「它的意思是XML(domElement)。而不是htmlElement(它繼承了domElement)」&「MDN上的例子只是一個例子」......會算作答案+ _ +,。哈哈 – PicoCreator