1.獲取頁面元素可以使用以下幾種方式:
根據(jù)ID獲取:
使用getElementById()方法可以獲取帶有Id的元素對(duì)象
根據(jù)標(biāo)簽名獲任J:
使用getElementsByTagName()方法可以返回帶有指定標(biāo)簽名的對(duì)象集合
通過HTML5新增的方法獲忍醇小:
1.document.getElementsByClassName('類名'):根據(jù)類名獲取某些元素集合
2.document.querySelector('選擇器'):返回指定選擇器的第一個(gè)元素對(duì)象
3.ocument.querySelectorAll('選擇器'):根據(jù)指定選擇器返回
特殊元素獲取
1.獲取body元素:
document.body
2.獲取html元素:
document.documentElement
2.事件基礎(chǔ):
1.事件是由三部分組成 事件源? 事件類型? 事件處理程序
(1)數(shù)據(jù)源:事件被觸發(fā)的對(duì)象
(2)事件類型:如何觸發(fā)? 什么事件? 比如鼠標(biāo)點(diǎn)擊? 還是鼠標(biāo)經(jīng)過? 還是鍵盤按下
(3)事件處理程序:通過一個(gè)函數(shù)賦值的方式
節(jié)點(diǎn)操作:
為什么要學(xué)節(jié)點(diǎn):
獲取元素通常使用兩種方式:
1.利用DOM提供的方法獲取元素
document.getElementById()
document.getElementByTagname()
document.querySelector()等
邏輯性不強(qiáng)、繁瑣
2.利用節(jié)點(diǎn)層級(jí)關(guān)系獲取元素
利用父子兄弟關(guān)系獲取元素蹄梢。邏輯性強(qiáng)嫉父,兼容性差
節(jié)點(diǎn)概述:
網(wǎng)頁中所有內(nèi)容都是節(jié)點(diǎn)(標(biāo)簽论熙、屬性福青、文本、注釋等jie)脓诡,在DOM中无午,節(jié)點(diǎn)使用node來表示
一般的,節(jié)點(diǎn)至少擁有nodeType(節(jié)點(diǎn)類型)祝谚、nodeName(節(jié)點(diǎn)名稱)和nodeValue(節(jié)點(diǎn)值)這三個(gè)基本屬性
元素節(jié)點(diǎn)nodeType為1
屬性節(jié)點(diǎn)nodeType為2
文本節(jié)點(diǎn)nodeType為3(文本節(jié)點(diǎn)包含文字宪迟、空格、換行等)
父級(jí)節(jié)點(diǎn)
node.parentNode
子節(jié)點(diǎn)
parentNode.childNodes:所有的子節(jié)點(diǎn)包含元素節(jié)點(diǎn)文本節(jié)點(diǎn)等
如果只想獲得里面的元素節(jié)點(diǎn)踊跟,則需要專門處理踩验。一般不提倡使用
parentNode.children:返回所有子元素節(jié)點(diǎn)。只返回子元素節(jié)點(diǎn)
獲取第一個(gè)和最后一個(gè)子節(jié)點(diǎn)
parentNode.firstChild:獲取元素的第一個(gè)子節(jié)點(diǎn)商玫,不管是文本節(jié)點(diǎn)還是元素節(jié)點(diǎn)
parentNode.lastChild:獲取元素的最后一個(gè)子節(jié)點(diǎn),不管是文本節(jié)點(diǎn)還是元素節(jié)點(diǎn)
parentNode.firstElementChild:返回第一個(gè)子元素節(jié)點(diǎn)牡借,找不到則返回null
parentNode.lastElementChild:返回最后一個(gè)子元素節(jié)點(diǎn)拳昌,找不到則返回null
但是這兩個(gè)有兼容性問題,僅支持ie9以上使用
實(shí)際開發(fā)中我們使用
兄弟節(jié)點(diǎn)
獲取下一個(gè)兄弟節(jié)點(diǎn)
nextSibling:包含元素節(jié)點(diǎn) 文本節(jié)點(diǎn)等
nextElementSibling:得到下一個(gè)兄弟元素節(jié)點(diǎn)钠龙,兼容性差僅支持ie9以上
獲取上一個(gè)兄弟節(jié)點(diǎn)
previousibling:包含元素節(jié)點(diǎn) 文本節(jié)點(diǎn)等
previousElementSibling:得到上一個(gè)兄弟元素節(jié)點(diǎn)炬藤,兼容性差僅支持ie9以上
創(chuàng)建節(jié)點(diǎn)
document.createElement('元素')
添加節(jié)點(diǎn)
node.appendChild(child):將一個(gè)節(jié)點(diǎn)添加到指定父節(jié)點(diǎn)的子節(jié)點(diǎn)列表末尾
node.insertbefore(child,指定元素)將一個(gè)節(jié)點(diǎn)添加到父節(jié)點(diǎn)的指定子節(jié)點(diǎn)前面
刪除節(jié)點(diǎn)
node.removeChild(child)