DOM 04 DOM常用物件

2022-06-14 11:33:07 字數 3799 閱讀 7990

一. html dom常用物件

: ——沒有

jquery

,沒有框架時的

過渡1. html dom對

個別常用的比較複雜的物件提供了簡化寫法

2.的簡化:

(1). 唯一的簡化: 建立img

a. 舊

dom: var img=document.createelement("img");

b. html dom: var img=new image();

(2). 強調: 只有兩個元素可以

new,其餘元素都不能用

new輕易建立

a. new image()

b. var option=new option()

3. 元素:

(1). options屬性: 可直接獲得

select

下所有直接子元素

option

的集合(2). 建立

時: var option=new option()

4. 元素

: 逐級管理

: (1). table物件管著行分組

物件a. table物件可以

新增行分組

物件1). 舊

dom: 2步

:i. var tbody=document.ceateelement("tbody") //建立行分組物件

2). html dom:

var tbody=table.createtbody()

強調: 一句話辦兩件事

: 既建立行分組物件,又將行分組新增到

table

中3). 出了createtbody()還有:

i. var thead=table.createthead();

ii. var tfoot=table.createtfoot();

b. table物件可以

刪除行分組

物件1). table.deletethead()

2). table.deletetfoot()

3).沒有

table.deletetbody()

c. table物件可以

獲取某個行分組

物件1). table.thead

2). table.tfoot

3). table.tbodies[i]

說明: html標準規定,

table

中可以包含多個

tbody

,所以table

將內部的可能多個

tbody

元素都放在

tbodies

陣列中,我們可通過下標

i,來訪問

table中第i

個tbody

物件。(2). 行分組物件管著行

物件:a. 行分組物件可

新增行: 

1). 舊

dom: 2步

var tr=document.createelement("tr"); //先建立新行物件

2). html dom: var tr=行分組.insertrow()

插入新行

說明: insertrow()乙個函式辦兩件事

,既建立新行物件

,又將新行物件追加到行分組中

3). 固定套路

: i. 其實insertrow(i) 可在中間i位置插入乙個新行

,原位置的行被向後擠一位

ii. 想在開頭插入乙個新行 insertrow(0)

b. 行分組物件可

刪除行: 

1). 行分組

.deleterow(i)

2). 坑: 用行分組物件刪除行時,i必須是

要刪除的行

在行分組內的相對位置

3). 問題: 如果看不出一行在行分組的下標位置是幾,還可通過要刪除的行物件的

rowindex

屬性,來獲得行的下標位置。但是,行物件的

rowindex

屬性是這一行在整個表中的下標位置!不是在行分組內的相對位置!所有行的

rowindex

屬性,因為受到表頭行的影響,很可能和行在行分組內的下標位置序號是錯位的。

tbody

.deleterow(

tr.rowindex)

很可能刪的不是想刪除的一行

,很可能是要刪除行的下乙個

4). 解決

: 今後,只要刪除**中的行,都應用

table

來刪除,而不是用行分組

i.table.deleterow(tr.rowindex)

ii. 因為主語變成了table,

deleterow

要求使用的下標範圍也變成了行在整個

table

中的下標。整個要求剛好和

tr.rowindex的意思吻合

!c. 獲取

一行: 行分組

.rows[i]

1). 說明:行分組已經將內部的所有tr物件

,放在了乙個rows屬性集合中

,可通過下標方式

,訪問行分組中第i行

(3). 行物件管著格

物件:a. 行物件可

新增乙個

新格:1). 舊dom: 2步

:i. var td=document.createelement("td"); //建立新的

td物件

td物件追加到tr中

2). html dom: var td=tr.insertcell()

插入新格

說明: insertcell()乙個函式做兩件事

,既建立新的td物件

,又將td物件追加到tr中

b. 行物件還可

刪除乙個格: tr.deletecell(i)

c. 行物件還可

獲得乙個格: tr.cells[i]

1) 說明: 行已經將內部的所有td物件

,放在了乙個cells屬性集合中

,可通過下標方式

,訪問行中第i個

格(4). 示例: 簡化動態建立**的例子

姓名薪資

年齡5. 表單:

(1). 獲取表單元素:

a. 舊

dom:

1). 有

name

屬性的表單

元素: 表單

.getelementsbyname("name")

2). 沒有

name

屬性的表單元素: 表單

.getelementsbytagname("

標籤名")

b. html dom:

1). form物件

已經將表單中的所有表單元素提前都儲存在了乙個elements屬性集合中。所以,可通過

: 表單.elements[i 或 id 或

name]

方式獲得表單中任意乙個表單元素

強調: 表單

.elements

集合中只包含四大類表單元素

,不包含其他非表單元素

(input  select    textarea   button)

2). 如果

有name屬性

的表單元素

,還可進一步簡寫為: 表單.name名

c. form.length 獲得表單中所有表單元素的個數 == form.elements.length

(2). 讓表單元素獲得焦點: 表單元素

.focus()

(3). 示例: 實現自定義表單提交按鈕

文件物件DOM

dom節點型別 1 document 整個文件是乙個文件節點。2 每個xml標籤是乙個元素節點 3 包含xml元素中的文字是文字節點 4 每乙個xml屬性是乙個屬性節點 5 注釋屬於注釋節點 節點屬性和方法 1 nodename 節點的名字 2 nadevalue 節點的值 3 nidetype 節...

DOM物件總覽

dom物件總覽 dom物件的內容非常的多,為了方便查詢,下面把各個物件相關鏈結羅列於下表,以便於大家的查詢使用。列表如下 物件名稱 描述doucment 代表整個html文件,可被用來訪問頁面中的所有元素。anchor 代表元素 area 代表影象對映中的元素 base 代表元素 body 代表元素...

Dom物件模型

1.文件物件 節點分為元素節點 屬性節點 文字節點。window.onload function var box document.getelementbyid box 通過id查詢元素節點,dom等待 alert box.id 元素id值 alert box.tagname 元素名 alert b...