DOM總結(上)DOM的增刪查改

2021-08-21 12:19:07 字數 2940 閱讀 7600

dom — > document object model

dom定義了表示和修改文件所需的物件、這些物件的行為和屬性以及這些物件之間的關係。dom物件即為宿主物件,由瀏覽器廠商定義,用來操作html和css功能的一類物件的集合。也有人稱dom是對html以及xml的標準程式設計介面。

1.createelement:通過傳入標籤來建立乙個dom

2.createtextnode:用來建立乙個文字節點

3.clonenode:轉殖乙個節點,有乙個引數,true支援深度轉殖,false不支援深度轉殖

4. createdocumentfragment: 用來插入一段dom

2.insertbefore

parent.insertbefore(newnode, exitsnode):將newnode新增到exitsnode的前面

3.insertadjacentelement

它包括兩個引數,其中第二個引數是要加的子節點,核心在於第乙個引數,有如下的取值

1.removechild

parent.removechild(child),刪除parent下的child節點,並且返回這個節點

2.replacechild

parent.replacechild(newnode,oldnode),將oldnode替換為newnode

修改dom,一般是修改dom的屬性,dom的html, text, 表單的值等

1.setattribute

a.setattribute(property, value):設定屬性property的值為value

2.innerhtml:獲取或者設定dom的dom內容

3.innertext:獲取或者設定dom的文字內容

4.value:獲取或者設定input, select的value

document代表整個文件

document.getelementbyid() //元素id 在ie8以下的瀏覽器,不區分id大小寫,而且也返回匹配name屬性的元素 .

getelementsbytagname() // 標籤名

getelementsbyname(); //,ie不支援需注意,只有部分標籤name可生效(表單,表單元素,img,iframe) .

getelementsbyclassname() // 類名 -> ie8和ie8以下的ie版本中沒有,可以多個class一起 .

queryselector() // css選擇器   在ie7和ie7以下的版本中沒有 .

queryselectorall() // css選擇器 在ie7和ie7以下的版本中沒有

----------------------------------------------分割線----------------------------------------------

接下來,要重點介紹幾個目前常用的api

根據css選擇器來獲取dom,如果有多個,返回第乙個

dom

123

執行以下**

document.queryselector('.test')
返回

1

返回所有滿足條件的元素

以上面的例子為例,如果使用queryselectorall,那麼返回值就是三個元素,這兩個api比較相似,只是乙個返回乙個dom,乙個返回多個dom,不展開了

dom**

it's me

child

child2

leaf

執行以下**之後

document.queryselector('#div1').children
得到了兩個節點,分別是

child

child2

leaf

由此可見,children獲取的是dom元素

還是上面的dom結構,來執行以下以下**

document.queryselector('#div1').childnodes
返回了五個元素

nodes[0] =it's me

nodes[1] =child

nodes[2] =換行符

nodes[3] =child2

leaf

nodes[4] =換行符

很明顯,它不僅返回了dom子元素,還返回了文字子元素

兩者大體差不多,區別和children和childnodes類似,不贅述了

previoussibling、previouselementsibling、nextsibling、nextelementsibling

推薦使用帶element的,大多數情況下,好像都不需要文字節點

firstchild、firstelementchild、lastchild、lastelementchild

區別參考上一條

該方法是window下的乙個方法,用來計算乙個dom元素生成好之後的style,很全,不過因為chrome下的除錯很方便,很少用到這個方法

它是用來獲取邊距的,很有用

1.setattribute:設定dom的屬性

a.setattribute(name,value),上面有提到,不贅述

2.getattribute:得到dom的屬性

a.getattribute('id') 獲取dom a的屬性id

3.removeattribute移除屬性

a.removeattribute(id) 移除id屬性

DOM節點 節點概述 增刪查改

一般地,節點至少擁有nodetype 節點型別 nodename 節點名稱 和nodevalue 節點值 這三個基本屬性 利用dom樹可以把節點劃分為不同的層級關係,常見的是父子兄層級關係。1.父級節點 node.parentnode 2.子節點 parentnode.childnodes 標準 p...

dom增刪改查

一 建立節點 document.createelement tag tag必須是合法的 html 元素二 dom新增 刪除節點的方法 將newnode新增成當前節點的最後乙個子節點 insertbefore newnode,refnode 將refnode 節點之前插入 newnode 節點repl...

DOM的增刪改查

1 建立li元素 var li document.createelement li 2 建立文字節點 var guangzhou document.createtextnode 廣州 3 將li元素與文字繫結在一起 li.guangzhou 4 獲取id為city的節點 var city docum...