2011-04-14 60 views
2

已經發現碎片在構建動態html時非常有用 - 就像使用一袋html元素一樣,並且袋子本身在放置時就會溶解 - 非常好。在DOM中,html元素和片段之間的功能區別是什麼?

我假設html元素和碎片的方法是一樣的,但我認爲這是不正確的。

似乎碎片有節點方法 - appendChild()等 - 但沒有更復雜的html元素方法,例如,getElementsByTagName()

這個評估是否正確?還是我以一種新的方式在腳下開槍?

回答

6

DocumentFragment延伸Node接口並且被定義爲,

interface DocumentFragment : Node { 
}; 

一種HTMLElementElement延伸,並且它的接口被定義爲,

interface HTMLElement : Element { 
    attribute DOMString id; 
    attribute DOMString title; 
    attribute DOMString lang; 
    attribute DOMString dir; 
    attribute DOMString className; 
}; 

Element在匝延伸Node接口。它包含其中幾個人的方法getElementsByTagName

interface Element : Node { 
    ... 
    NodeList getElementsByTagName(in DOMString name); 
    .. 
}; 

因此,要回答你的問題,總之,一個文檔片段和一個HTML元素都共享node interface

+0

感謝您的回答和具體問題 – 2011-04-14 05:52:48

1

DocumentFragment接口擴展了Node interface,因此提供方法來插入和克隆的元素,但不getElementsByTagName()等。這些可在Document interface(其中也延伸到Node)中找到。

+0

* getElementsByTagName *是接口元素的一部分(請參閱Anurag的帖子)。 – RobG 2011-04-14 06:19:08

+0

@RobG是,*和* [在'Document'](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-A6C9094)。 – jensgram 2011-04-14 06:29:51

相關問題