1.刪除節(jié)點
element.removechild(')方法從DOM中刪除一個字節(jié)點召耘,返回刪除的節(jié)點迟几。4敌厘、
element.removechild(')
2.克隆節(jié)點(復制節(jié)點)
dlement.cloneNode()方法返回調(diào)用該方法的節(jié)點的一個副本,也稱為克隆節(jié)點/拷貝節(jié)點?
注意: 括號參數(shù)為空或者false虐骑,則是淺拷貝,即只克隆復制節(jié)點本身赎线,不可隆里面的子節(jié)點廷没。
2.三種動態(tài)創(chuàng)建元素和區(qū)別
document.write()
element.innerHTML()
docenment.createElement()
區(qū)別:
1. document.write 是直接將內(nèi)容寫入頁面的內(nèi)容流,但是文檔流執(zhí)行完畢垂寥,則它會導致頁面全部重繪
2. innerHTML是將內(nèi)容寫入某個DOM節(jié)點颠黎,不會導致頁面全部重繪
3. innerHTML創(chuàng)建讀個元素效率更高(不要拼接字符串,采取數(shù)組形式拼接)滞项,結(jié)構(gòu)稍微復雜
4. createElement()創(chuàng)建多個元素效率稍微低一點點狭归,但是結(jié)構(gòu)更清晰
3.DOM核心
? ? 文檔對象模型,是W3C組織推薦的可擴展標記語言的標準編程接口文判。
? ? W3C已經(jīng)定義了一系列的DOM接口过椎,通過這些DOM接口可以改變網(wǎng)頁的內(nèi)容、結(jié)構(gòu)律杠、和樣式潭流。
????1.對于javascript,為了能夠使用javascript操作HTML柜去,javascript就有了一套自己的dom編程接口
????2.對HTML灰嫉,dom使得html形成一顆dom數(shù),包含文檔嗓奢、元素讼撒、節(jié)點。
????3.我們獲取過來的dom元素是一個對象(object)股耽,所以稱為文檔對象模型
4.事件監(jiān)聽方式addEventListener
????eventTarget.attachEvent()方法將指定的監(jiān)聽器注冊到 eventTarget(目標對象) 上根盒,當該對象觸發(fā)指定的事件時,指定的回調(diào)函數(shù)就會被執(zhí)行物蝙。
?eventTargetaddEventListener(type,listener[useCapture])
5.DOM事件流
事件流描述的是從頁面中接收事件的順序
事件發(fā)生時會在元素節(jié)點之間按照特定的順序傳播炎滞,這個傳播過程即DOM事件流
DOM事件流分為3個階段:
1.捕獲階段
2.當前目標階段
3.冒泡階段
事件冒泡:IE最早提出,事件開始時由最具體的元素接收诬乞,然后逐漸向上傳播到DOM最頂層節(jié)點的過程册赛。
事件捕獲:網(wǎng)景最早提出,由DOM最頂層節(jié)點開始震嫉,然后逐級向下傳播到最具體的元素接收的過程森瘪。
6.什么是事件對象
官方理解:event對象代表事件的狀態(tài),比如鍵盤按鍵的狀態(tài)票堵、鼠標的位置扼睬、鼠標按鈕的狀態(tài)。
簡單理解: 事件發(fā)生后悴势,跟事件相關(guān)的一系列信息數(shù)據(jù)的集合都放到這個對象里面窗宇,這個對象就是事件對象event,它有很多屬性和方法措伐。
事件就是:
1.誰綁定了這個事件。
2.鼠標觸發(fā)事件的話担映,會得到鼠標的相關(guān)信息废士,如鼠標位置叫潦。
3. 鍵盤觸發(fā)事件的話蝇完,會得到鍵盤的相關(guān)信息,如按了那個鍵矗蕊。
7.e.target和this 區(qū)別
e.target返回的是觸發(fā)事件的對象(元素)this返回的是綁定事件的對象(元素)
e.target點擊了那個元素短蜕,就返回那個元素的this那個元素綁定了這個點擊事件。
8.阻止默認行為(事件)
阻止默認行為(事件) 讓鏈接不跳轉(zhuǎn) 后者讓提交按鈕不提交
普通瀏覽器e.preventDefault(); 方法
低版本瀏覽器 e.returnValue;
9.阻止事件冒泡的像兩種方式
阻止事件冒泡
標準寫法: 利用事件對象里面的stopPropagtion()方法
e.stopPropagation()
非標準寫法: IE6-8利用事件對象cancelBubble屬性
cancelBubble=ture
10.事件委托
事件委托
事件委托也稱為事件代理傻咖,在jQuery里面稱為事件委托朋魔。
事件委托的原理
不是每個子節(jié)點單獨設置事件監(jiān)聽器,而是事件監(jiān)聽器設置在其父節(jié)點上卿操,然后利用冒泡原理影響設置每個子節(jié)點警检。
作用:
我們只操作了一次DOM,提高了程序的性能
1 - 動態(tài)添加列表(加強訓練)
題目描述
頁面上有一些美女列表害淤,當單擊li時背景色變?yōu)榧t色扇雕,但點擊按鈕時會新增1個美女到列表最前面,并且單擊新增的美女背景也會變?yōu)榧t色窥摄,具體表現(xiàn)如下圖:
1)要求使用到事件委托
css樣式
??<ul>
??????<li>芙蓉姐姐</li>
??????<li>西施</li>
??????<li>貂蟬</li>
??????<li>昭君</li>
??????<li>鳳姐</li>
????</ul>
????<ul></ul>
????<button>按鈕</button>
js
?var?ul?=?document.querySelector('ul');
??????var?btn?=?document.querySelector('button');
??????btn.addEventListener('click',?function?()?{
????????var?li?=?document.createElement('li');
????????ul.insertBefore(li,?ul.children[0]);
????????ul.children[0].innerHTML?=?`楊朝麗`;
??????});
??????ul.addEventListener('click',?function?(e)?{
????????for(var?i?=?0;?i<ul.children.length?;?i++){
??????????ul.children[i].style.backgroundColor?=?'';
????????}
????????if?(e.target?!=?this)?{
??????????e.target.style.backgroundColor?=?'red';
????????}
??????});