dom 可以將任何 html 或 xml 文件描繪成乙個由多層節點構成的結構。節點分為幾種不同的型別,每種型別分別表示文件中不同的資訊及(或)標記。每個節點都擁有各自的特點、資料和方法。
dom1 級定義了乙個 node 介面,該介面將由 dom 中的所有節點型別實現。
每個節點都有乙個 nodetype 屬性,表示節點型別,節點型別由在 node 型別中定義的下列
12 個數值常量來表示,如下所示:
1.1.1 nodename 和 nodevalue 屬性
1.1.2 節點關係
//在 ie8 及之前版本中無效
var arrayofnodes = array.prototype.slice.
call
(somenode.childnodes,0)
;
1.1.3 操作節點
insertbefore()replacechild()removechild()clonenode(): 複製節點
normalize()
document 節點具有下列特徵:
1.2.1 文件的子節點
1.2.2 文件資訊
1.2.3 查詢元素
1.2.4 特殊集合
1.2.5 文件寫入element 節點具有以下特徵:
1.3.1 html 元素
每個 html元素中都存在的下列標準特性:
1.3.2 取得特性
getattribute()
div.id
div.
getattribute
("id"
)
根據h5規範,自定義特性應該加上data- 字首以便驗證,由於style和onclick特性,只有在取得自定義特性時,才會使用getattribute()方法。
1.3.3 設定特性
setattribute(「mycolor」, 「red」)
removeattribute(「mycolor」)
1.3.4 attributes 屬性
attributes 屬性中包含乙個namednodemap,與 nodelist 類似,也是乙個「動態」的集合。
1.3.5 建立元素
document.
createelement
("div"
)
1.3.6 元素的子節點text 節點具有以下特徵:
1.4.1 建立建立文字節點
document.createtextnode()
1.4.2 規範化文字節點
normalize()方法
1.4.3 分割文字節點
splittext()
comment 節點具有下列特徵:
document.createcomment()建立注釋節點
cdatasection 型別只針對基於 xml 的文件,表示的是 cdata 區域。
nodetype 的值為 4;
包含著與文件的 doctype 有關的所有資訊,nodetype 的值為 10;
nodetype 的值為 11;
元素的特性在 dom 中以 attr 型別來表示,nodetype 的值為 2;
對 dom 的兩個主要的擴充套件是selectors api(選擇符 api)和html5。
queryselector()queryselectorall()matchesselector()
childelementcount:返回子元素(不包括文字節點和注釋)的個數;
firstelementchild:指向第乙個子元素;firstchild 的元素版;
lastelementchild:指向最後乙個子元素;lastchild 的元素版;
previouselementsibling:指向前乙個同輩元素;previoussibling 的元素版;
nextelementsibling:指向後乙個同輩元素;nextsibling 的元素版。
解決了空白文字節點的問題。
2.3.1 與類相關的擴充
getelementsbyclassname()classlist屬性
add(value):將給定的字串值新增到列表中;
contains(value):表示列表中是否存在給定的值,如果存在則返回 true,否則返回 false;
remove(value):從列表中刪除給定的字串;
toggle(value):如果列表中已經存在給定的值,刪除它;如果列表中沒有給定的值,新增它。
//刪除"disabled"類
div.classlist.
remove
("disabled");
//新增"current"類
div.classlist.
add(
"current");
//切換"user"類
div.classlist.
toggle
("user");
//確定元素中是否包含既定的類名
if(div.classlist.
contains
("bd")&&
!div.classlist.
contains
("disabled"))
else
head 屬性
document.head:引用文件的元素
2.3.4 字符集屬性
document.charset
2.3.5 自定義資料屬性
html5 規定可以為元素新增非標準的屬性,但要新增字首data-,目的是為元素提供與渲染無關的資訊,或者提供語義資訊。
2.3.6 插入標記
innerhtml 屬性
outerhtml 屬性
insertadjacenthtml()方法
2.3.7 scrollintoview()方法
方便開發人員更好地控制頁面滾動。
目前沒有成為的 dom 擴充套件的標準,成為專有擴充套件。將來可能會成為標準。說白了就是備胎的意思。
2.4.1 children屬性
和childnodes類似,區別是children只獲取元素子節點
2.4.2 contains()方法
用來判斷某個節點是不是另乙個節點的後代
alert
(document.documentelement.
contains
(document.body));
//true
2.4.3 插入文字
innertext 屬性
outertext 屬性
2.4.5 插入文字
html5 在將scrollintoview()納入規範之後,仍然還有其他幾個專有方法可以在不同的瀏覽器中使用。
document.defaultview.getcomputedstyle(mydiv, null);document.defaultview.getcomputedstyle(mydiv, null);
獲取元素計算後屬性
document.defaultview.
getcomputedstyle
(mydiv,
null
);
js入門 Dom基礎
dom documentobject model,文件物件模型。dom有三個不同的部分。1 核心dom 也是最基礎的文件結構的標準模型 2 xmldom 針對xml文件的標準模型 3 html dom 針對html文件的標準模型 對於乙個新生程式設計師來說。html是什麼,其實並不重要。但是都知道。...
js基礎複習之DOM和文件載入
1.瀏覽器已經為我們提供 文件節點 物件這個物件是window屬性 可以在頁面中直接使用,文件節點代表的是整個網頁 獲取到button物件 var btn document.getelementbyid btn 修改按鈕的文字 btn.innerhtml i m button 2.瀏覽器在載入乙個頁...
JS基礎學習二 DOM
b 獲取節點 b document.getelementbyid nodeid document.getelementsbytagname nodetagname b 樹形操作 b firstchild lastchild childnodes parentnode nextsibling 同級的下...