你不知道的Dom事件煤蹭?

Dom事件

鼠標(biāo)事件:
mousedown:鼠標(biāo)按鈕被按下(左鍵或者右鍵)時(shí)觸發(fā),不能通過鍵盤觸發(fā)
mouseup:鼠標(biāo)抬起時(shí)觸發(fā),不能通過鍵盤觸發(fā)
click:單擊鼠標(biāo)左鍵或者按下回車鍵時(shí)觸發(fā)硝皂。這點(diǎn)對確保易訪問性很重要常挚,意味著onclick事件處理程序既可以通過鍵盤也可以通過鼠標(biāo)執(zhí)行。
dblclick:雙擊鼠標(biāo)左鍵時(shí)觸發(fā)稽物。
mouseover:鼠標(biāo)移入觸發(fā)
mouseout:鼠標(biāo)移出觸發(fā)
mouseenter:鼠標(biāo)移入范圍內(nèi)觸發(fā)
mouseleave:鼠標(biāo)移出范圍內(nèi)觸發(fā)
mousemove:鼠標(biāo)在元素內(nèi)部不斷移動(dòng)時(shí)觸發(fā)

鍵盤事件
keydown:按鍵按下
keyup:按鍵抬起
keypress:鍵盤按下抬起

**HTML事件
load:文檔加載完成 (寫在js代碼中)
select:被選中的時(shí)候
change:內(nèi)容被改變
focus:得到光標(biāo)
resize:窗口尺寸變化
scroll:滾動(dòng)條移動(dòng)
onchange:表單元素發(fā)生變化后觸發(fā)
oninput:表單元素內(nèi)容發(fā)生變化時(shí)觸發(fā)

Dom節(jié)點(diǎn)的屬性

nodeName:元素的標(biāo)簽名奄毡,以大些的形式返回
nodeValue:根據(jù)節(jié)點(diǎn)的類型設(shè)置或返回節(jié)點(diǎn)的值

如果你想返回元素的文本,記住文本通常是插入到文本節(jié)點(diǎn)中贝或,所以返回的是文本節(jié)點(diǎn)的節(jié)點(diǎn)值(element.childNodes[0].nodeValue)

nodeType:以數(shù)字值返回指定的節(jié)點(diǎn)類型
nodeType(數(shù)值)nodeName nodeValue
·元素節(jié)點(diǎn)1標(biāo)簽名null
·屬性節(jié)點(diǎn)2屬性名 屬性值
·文本節(jié)點(diǎn)3#text 文本
·注釋節(jié)點(diǎn)8#comment注釋的文字
·文檔節(jié)點(diǎn)9#document null

Dom節(jié)點(diǎn)的關(guān)系

·firstChild:第一個(gè)子元素吼过,該節(jié)點(diǎn)沒有子節(jié)點(diǎn)則返回null
·lastChild:最后一個(gè)子元素,該節(jié)點(diǎn)沒有子節(jié)點(diǎn)則返回null
·parentNode傀缩;獲取父節(jié)點(diǎn)
·childNode:獲取所有子節(jié)點(diǎn)那先,找不到返回空數(shù)組

特殊情況

對于元素之間的空格,IE9及之前版本不會(huì)返回文本節(jié)點(diǎn)赡艰,而其他所有瀏覽器都會(huì)返回文本節(jié)點(diǎn)售淡,這就導(dǎo)致了在使用childNodes和firstChild等屬性的行為不一致,為了彌補(bǔ)該差異性慷垮,Element Traversal規(guī)范新定義了一組屬性如下:

·childElementCount:返回子元素(不包括文本節(jié)點(diǎn)和注釋)的個(gè)數(shù)
·firstElementChild:指向第一個(gè)子元素揖闸,firstchild的元素版
·lastElementChild:指向最后一個(gè)元素,lastchild的元素版
·previousElementSibling: 指向前一個(gè)同輩元素
·previousSibling的元素版
nextElementSibling: 指向后一個(gè)同輩元素料身,nextSibling的元素版
· children 獲取元素子元素 返回一個(gè)數(shù)組
· childElementCount 獲取元素子元素的個(gè)數(shù) 3
· firstElementChild 獲取元素第一個(gè)子元素的個(gè)數(shù)<div>one</div>
· lastElementChild 獲取元素最后一個(gè)子元素的個(gè)<div>three</div>
· dom.nextSibling 獲取下一個(gè)節(jié)點(diǎn)#text
· dom.nextElementSibling 獲取下一個(gè)元素<p>哈哈哈</p>
· dom.previousSibling() 獲取上一個(gè)節(jié)點(diǎn) #text
· dom.previousElementSibling() 獲取上一個(gè)元素<span>shangaaa</span>

節(jié)點(diǎn)的操作

創(chuàng)建節(jié)點(diǎn)

·documen.createElement():創(chuàng)建新元素(只接受一個(gè)參數(shù))
·document.createTextNode():創(chuàng)建文本節(jié)點(diǎn)汤纸,參數(shù)為字符串文本

插入節(jié)點(diǎn)

·appendChild()
·node.appendChild(node):插入指定節(jié)點(diǎn)成為那個(gè)節(jié)點(diǎn)最后一個(gè)子節(jié)點(diǎn),在插入的元素節(jié)點(diǎn)上調(diào)用
·insertBefore(新節(jié)點(diǎn)芹血,參照節(jié)點(diǎn))第一個(gè)參數(shù): 待插入的節(jié)點(diǎn)第二在的節(jié)點(diǎn)贮泞,新節(jié)點(diǎn)將插入該節(jié)點(diǎn)的前面在父節(jié)點(diǎn)上調(diào)用
·insertBefore()函數(shù)用法:
新元素:你想插入的元素(newElement)
目標(biāo)元素:你想把這個(gè)元素插入到哪個(gè)元素(targetElement)
父元素:目標(biāo)元素的父元素(parentELement)
parentELement.insertBefore(newElement, targetElement)

如果調(diào)用appendChild()或insertBefore()將已存在文檔中的一個(gè)節(jié)點(diǎn)再次插入,那個(gè)節(jié)點(diǎn)將自動(dòng)從它當(dāng)前的位置刪除并在新的位置重新輸入幔烛,沒有必要顯式刪除該節(jié)點(diǎn)

刪除和替換節(jié)點(diǎn)

·replaceChild:實(shí)現(xiàn)子節(jié)點(diǎn)(對象)的替換啃擦,返回被替換對象的引用

語法:

·node.replaceChild (newnode,oldnew )
·old.parentNode.replaceChild(new, old)
new:第一個(gè)參數(shù)時(shí)新節(jié)點(diǎn)
old:第二個(gè)參數(shù)需要代替的節(jié)點(diǎn),在父節(jié)點(diǎn)上調(diào)用該方法
刪除一個(gè)子節(jié)點(diǎn)并用一個(gè)新節(jié)點(diǎn)取而代之
·removeChild(node)

從文檔樹中刪除一個(gè)節(jié)點(diǎn) 該方法不是在刪除的節(jié)點(diǎn)上調(diào)用饿悬,而是在父節(jié)點(diǎn)上調(diào)用

克隆節(jié)點(diǎn)

克隆節(jié)點(diǎn) 需要克隆的節(jié)點(diǎn).cloneNode(true/false);
用于創(chuàng)建調(diào)用這個(gè)方法的節(jié)點(diǎn)的一個(gè)完全相同的副本 接受一個(gè)布爾值參數(shù)令蛉,表示是否執(zhí)行深復(fù)制
·true: 深復(fù)制
復(fù)制節(jié)點(diǎn)及其整個(gè)子節(jié)點(diǎn)樹
·false: 淺復(fù)制只復(fù)制節(jié)點(diǎn)本身

復(fù)制后返回的節(jié)點(diǎn)副本屬于文檔所有,但并沒有為它指定父節(jié)點(diǎn)狡恬,除非添加到文檔中珠叔,不會(huì)復(fù)制添加到DOM節(jié)點(diǎn)中的JavaScript屬性,例如事件處理程序弟劲,IE就會(huì)復(fù)制事件處理程序祷安,建議復(fù)制前先移除事件處理程序
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兔乞,隨后出現(xiàn)的幾起案子汇鞭,更是在濱河造成了極大的恐慌撇眯,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虱咧,死亡現(xiàn)場離奇詭異,居然都是意外死亡锚国,警方通過查閱死者的電腦和手機(jī)腕巡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來血筑,“玉大人绘沉,你說我怎么就攤上這事〔蜃埽” “怎么了车伞?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喻喳。 經(jīng)常有香客問我另玖,道長,這世上最難降的妖魔是什么表伦? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任谦去,我火速辦了婚禮,結(jié)果婚禮上蹦哼,老公的妹妹穿的比我還像新娘鳄哭。我一直安慰自己,他們只是感情好纲熏,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布妆丘。 她就那樣靜靜地躺著,像睡著了一般局劲。 火紅的嫁衣襯著肌膚如雪勺拣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天容握,我揣著相機(jī)與錄音宣脉,去河邊找鬼。 笑死剔氏,一個(gè)胖子當(dāng)著我的面吹牛塑猖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谈跛,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼羊苟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了感憾?” 一聲冷哼從身側(cè)響起蜡励,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凉倚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兼都,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年稽寒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扮碧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杏糙,死狀恐怖慎王,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宏侍,我是刑警寧澤赖淤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站谅河,受9級(jí)特大地震影響咱旱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旧蛾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一莽龟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锨天,春花似錦毯盈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至益缠,卻和暖如春脑奠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幅慌。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工宋欺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胰伍。 一個(gè)月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓齿诞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骂租。 傳聞我的和親對象是個(gè)殘疾皇子祷杈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的但汞。 ??事件宿刮,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,503評論 1 11
  • ??DOM(文檔對象模型)是針對 HTML 和 XML 文檔的一個(gè) API(應(yīng)用程序編程接口)僵缺。 ??DOM 描繪...
    霜天曉閱讀 3,655評論 0 7
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,132評論 0 21
  • 歡迎關(guān)注個(gè)人微信公眾賬號(hào):byodian個(gè)人博客:Byodian's Blog JavaScript 基礎(chǔ)知識(shí)總結(jié)...
    工具速遞閱讀 762評論 0 3
  • ??DOM 1 級(jí)主要定義的是 HTML 和 XML 文檔的底層結(jié)構(gòu)谤饭。 ??DOM2 和 DOM3 級(jí)則在這個(gè)結(jié)構(gòu)...
    霜天曉閱讀 1,453評論 1 3