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...