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