Web API 學習02 (節點操作)

2021-10-23 09:18:36 字數 2517 閱讀 8245

(1) 排他思想(運用於京東輪播圖小圓點)

如果有一組元素,我們想要某乙個元素實現某種樣式,需要用到迴圈的排他思想演算法:

1、先把所有元素全部清除樣式

2、然後給當前元素新增樣式

var imgs=document.queryselector('.box').queryselectorall('img');

是找到類名為box的盒子裡面的所有

element . 屬性 獲取內建屬性值(元素本身自帶的屬性)

element . getattribute(』 屬性』 );主要是獲取自定義屬性的值,我們程式設計師自定義的屬性

element . 屬性 設定內建屬性值(元素本身自帶的屬性)

element . setattribute(』 屬性』,『屬性值』 );主要是設定自定義屬性的值,

element . removeattribute(『屬性』)

由於有些自定義屬性,很容易引起歧義,不能判斷元素是自定義屬性還是內建屬性,

因此h5新增了自定義屬性

(1)、設定h5自定義屬性

h5規定自定義屬性以data- 開頭作為屬性名並賦值

或者使用js設定自定義屬性

element . setattribute (』date-index『 ,屬性值』)

(2)h5自定義屬性的獲取

一種是:element . getattribute(』 屬性』 );主要是獲取自定義屬性的值,我們程式設計師自定義的屬性(無相容性問題)

新增的:element . dateset . index 或者 element . dateset [ 'index](ie11以上才可以)

dataset 是乙個集合,裡面存放了所有以data開頭的自定義屬性

它只能獲取以data 開頭的值

如果自定義屬性裡面有多個 - 鏈結的單詞,我們獲取的時候採用駝峰命名法

(1)利用dom提供的方法獲取元素:邏輯性不強,繁瑣

(2)利用節點層級關係獲取元素:利用父子兄節點獲取

以上兩種方法都可以獲取元素,後面都會使用,但是節點操作更簡單

一般的,節點至少擁有nodetype(節點型別)、nodename(節點名稱)、nodevalue(節點值)這三個基本屬性

元素節點 nodetype 為1

屬性節點 nodetype 為2

文字節點 nodetype 為3 (文字節點包含文字,空格,換行等)

在實際開發裡面,節點操作主要操作的是元素節點

父節點 node . parentnode (得到的是離元素最近的父級節點

,如果找不到就返回為null)

子節點1 node . childnodes (得到的所有子節點是元素節點和文字節點(空格))(這種方法不提倡使用)

子節點2 node . children

node . firstelementchild : 獲取第乙個子元素節點

node . lastelementchild : 獲取最後乙個子元素節點

這兩個有相容性問題,ie9以上才支援

實際開發的寫法:

node . children [ 0 ] : 獲取第乙個子元素節點

node . children [parentnode . children . length-1 ] : 獲取最後乙個子元素節點

node.nextsibling:獲取下乙個兄弟節點(包括元素節點和文字節點)

node.previoussibling:獲取上乙個兄弟節點

node.nextelementsibling:獲取下乙個元素兄弟節點

node.previouselementsibling:獲取上乙個元素兄弟節點

document.createelement(『tagname』)

document.createelement( )方法建立有tagname指定的html元素,因為這些元素原先不存在,是根據需求動態生成的,因此也叫動態建立元素節點

node.insertbefore(child ,指定元素):在某元素前面新增節點

頁面想要新增乙個新的元素:(1)建立元素並賦值;(2)新增元素

node . removechild( )

node是父級,child是子級

node . clonenode ( )

如果括號為空或者為false,則為淺拷貝,只複製標籤不複製內容

如果括號為true,則為深拷貝,既複製標籤又複製內容

document.write():如果頁面文件流載入完畢,會導致重新建立乙個新頁面,新頁面裡只有你新增加的那個東西

element.innerhtml:建立多個元素效率更高(前提是:不要拼接字串,採取陣列的形式拼接),結構稍微有些複雜

document.createelement( ):建立多個元素,效率稍微低一點,但是結構更清晰

複習dom:建立,增,刪,改,查,屬性操作,事件操作

憤怒的WebAPI(四) 節點

1 節點型別 nodetype 2 節點名 nodename,對於元素節點來說,nodename結果為大寫的標籤名,例如div 3 節點值 nodevalue,對於元素節點來說,nodevalue為null parentnode,父節點 childnodes,獲取所有子節點,會獲取到文字節點 chi...

3 4 節點操作

一。元素節點的建立,新增,插入 替換,刪除 轉殖 建立節點有三種形式 1 document.createelement 元素 2 document.createtextnode 文字 3 document.createdocumentfragment document.createdocumentf...

2020 4 20 節點操作

一,建立節點 createlement 格式 document.createlement 標籤名 返回值 建立好的這個節點 二,插入節點三,建立文字節點 純文字,不解析標籤 格式 document.createtextnode 文字 四,替換節點 replacechild 格式 box1.paren...