dom1中定義了乙個node介面,這個介面在js中作為node型別實現,除ie外,其他瀏覽器都可以訪問到這個型別。js中所以節點型別都繼承自node型別,節點型別都享有共同的·基本屬性和方法。
每個節點都有nodetype屬性,表明節點型別,由12個常量表示,任何節點必居其一。
node.element_node 1 元素節點
node.attribute_node 2 屬性節點
node.text_node 3 文字節點
......
常用的為以上三種,還有其他型別可去查閱相關資料
確定節點型別的方法:
//ie中無效
if(somenode.nodetype==node.element_node)
//或(由於ie沒有公開node型別的建構函式,上面的方法會導致錯誤,所以為了保證相容性,還是用數值比較的方法)
if(somenode.nodetype==1)
節點關係節點間的關係一般採用家族關係來描述。比如html中有父元素,子元素關係。
1.每個節點都有childnodes屬性,儲存著nodelist物件,一種儲存著有序節點的類陣列物件
2.每個節點還有:
3.所有節點的ownerdocument屬性:指向表示整個文件的文件節點
insertbefore() : 插入節點,接收兩個引數:第乙個是要插入的節點,第二個是位置參照節點。被插入的節點會作為參照節點的前乙個同胞節點被返回。
//插入後成為最後乙個節點
somenode.insertbefore(newnode,null);
//插入成為第乙個節點
somenode.insertbefore(newnode,somenode.firstchild);
replacechild(): 替換節點。接收兩個引數:要傳入的節點和要替換的節點。
removechild():移除節點。接收乙個引數:要移除的節點。
其他方法
clonenode(): 建立呼叫這個方法的節點的乙個完全相同的副本。接收乙個布林值引數:是否執行深複製,深複製會複製整個子節點數(true),淺複製只複製本身。
normalize(): 處理文件樹中的文字節點。有時候會出現文字節點不包含文字或者接連出現兩個文字節點的情況。在某個節點上呼叫這個節點,可查詢上述的兩種情況,如果找到了空節點就刪除它,如果找到接連的兩個節點就合併。
上一節---->[js——dom層次節點(一)]
Node的型別結構
node有五種子型別 node blank,node anon,node uri,node variable,and node any.即 空白結點,匿名結點,uri結點,屬性結點,any結點 jena中一共有8個類來描述node結點,其中node是最上層的類,其餘的結點型別都是繼承自node結點。...
node中全域性物件二 console
console在輸出log中起很大的作用。主要是用於標準輸入流的輸出。在這裡主要說一下console中的一些方法以及console在cmd命令下重定向的方法。這些變數都是列印log,但是也有各自的不同。下面在webstorm中和cmd命令下看下執行的結果。在webstorm下列印的結果 在上圖可以看...
node中的模組
node中乙個檔案就是乙個模組,使用exports和require來進行配置和呼叫。例如定義乙個hello模組 function hello name exports.hello hello main.js如下 var h require hello h.hello world 最後執行node m...