DOM及其擴充套件

2021-08-07 05:26:43 字數 4556 閱讀 8369

元素物件的標準特性:

1 .obj.id

2. obj.classname

3. obj.title

4.obj.lang :元素內容的語言**

5.obj.dir :ltr 或rtl

自定義特性:加 data- 字首

特殊的特性: style onclick

取得特性

getattribute() setattribute()  removeattribute()

注意:自定義特性只能通過以上方法取得和設定,不能用物件.屬性的方法

元素物件的非標準屬性:例:

元素物件js屬性:

obj.tagname : 獲取標籤名

obj.innerhtml:標籤裡面的所有內容

obj.outerhtml;  包括標籤在內的所有東西

obj.textcontent;  標籤內的文字內容

獲取元素物件的方法:

document.getelementbyid();

obj/document.getelementsbytagname();

document.getelementsbyclassname();

document.getelementsbyname();

queryselector():接收乙個css選擇符,返回匹配的第乙個元素

queryselectorall();返回乙個nodelist例項,使用 或者 item()訪問

直接獲取dom元素物件(集合):

1.    document.documentelement:指向元素

2.    document.head;

3.    document.title;

document.url :頁面完整的url

document.domain :取得網域名稱,將其設定為url包含的域

document.referrer: 取得**頁面的url

4.    document.body;

5.    document.links;取得帶有href特性的元素

6.    document.images;

7.    document.forms;

8.    document.anchors;  取得帶有name特性的元素

9.    document.rows;

10.          tableobj.rows;

11.          selectobj.options;

12 document.doctype;

node

節點屬性

nodevalue nodename  nodetype

節點關係

childnodes屬性儲存著nodelist物件(類陣列),有length屬性

訪問:方括號 item();

parentnode 父節點

firstchild :  childnodes[0]

lastchild : childnodes[somennode.childnodes.length -1]

previoussibling 前乙個節點

nextsibling  下乙個節點

ownerdocument :指向表示整個文件的文件節點

haschildnodes() :包含子節點則返回true

操作節點

insertbefore(): 插入到某個節點前面

引數:要插入的節點、參照節點

replacechild(): 引數 :要插入的節點、要替換的節點

removechild():  引數:要移除的節點

注意:以上方法操作某節點的子節點,要取得父節點

clonenode()  引數:布林值 表示是否執行深複製,複製完可以用上述方法插入到文件中

淺複製:只複製節點本身

深複製: 複製節點及其整個子節點樹

normalize() : 處理文件樹中的文字節點 (使規範化)

用於:文字節點不包含文字或接連兩個文字節點

dom 的一致性檢測

document.implementation 屬性:提供相應資訊和功能

hasfeature():

引數 :要檢測的dom功能名稱和版本號,存在則返回true

var hasxmldom=document.implementation.hasfeature(「xml」,」1.0」);  

將輸出流寫入到頁面

document.write() :原樣寫入

document.writeln() : 在字串末尾新增乙個換行符(\n)

.close() .open() :分別用於關閉和開啟頁面的輸入流

element

常見特徵

nodetype:1

nodename:元素的標籤名

nodevalue: null

div.tagname == div.nodename  ,在html中大寫

比較操作:

if(mydiv.tagname.tolowercase()== "div")catch(ex)catch(ex)");

操作**

table

caption                    

tbodies

tfoot

thead

rows

tbody

rows

deleterow(pos);

insertrow(pos);

trcells       deletecell(pos)   insertcell(pos)

nodelist  、namednodemap、htmlcollection 三個集合都是動態的,儲存著最新的、最準確的資訊

元素遍歷

屬性

childelementcount

firstelementchild

lastelementchild

previouselementsibling

nextelementsibling

操作類名

屬性:classlist :有length屬性表示包含多少個元素 /item()

方法:obj.classlist.add(value); 新增

obj.classlist.remove(value); 刪除

obj.classlist.contains(value);//true /false

obj.classlist.toggle(value); 有則刪除,無則新增

焦點管理

document.activeelement :引用dom中當前獲得了焦點的元素

document.hasfocus():用於確定文件是否獲得了焦點

htmldocument的變化

readystate屬性

兩個值:loading  正在載入文件, complete 已經載入完文件

相容模式

判斷瀏覽器採用了那種渲染模式

標準模式:document.compatmode為『css1compat』

混雜模式:document.compatmode為『backcompat』

head屬性

var head=document.head||document.getelementsbytagname(『head』)[0];

charset :

表示文件實際使用的字符集

修改:、響應頭部、直接設定charset屬性

自定義資料屬性

1. 新增非標準屬性,加字首 data - 為元素提供與渲染無關的資訊

2.  dataset 屬性:訪問自定義屬性的值

DOM擴充套件

1選擇符 queryselector 返回第乙個匹配的元素 queryselectorall 返回所有匹配的元素 html5 getelementbyclassname 引數為乙個或多個類名,引數不重要,返回是乙個nodelist 集合 classlist add 加入字串 contains 列表中...

DOM擴充套件

1.selector api level1 ie8 queryselector body mydiv selected 取類為此的第乙個元素 queryselectorall 返回乙個nodelist例項,返回的值實際上是帶有所有屬性和方法的nodelist,底層類似於一組元素快照,而非對文件進行搜...

DOM的擴充套件

dom擴充套件主要為selectors api和html5 selectors api的兩個核心放方法queryselector 和queryselectorall 1.queryselector 接收css選擇符,返回與該模式匹配的第乙個元素。獲取body元素 var body document....