您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“JavaScript中如何利用DOM節(jié)點(diǎn)獲取頁(yè)面元素”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“JavaScript中如何利用DOM節(jié)點(diǎn)獲取頁(yè)面元素”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
(1)獲取節(jié)點(diǎn)(包含文本節(jié)點(diǎn)、元素節(jié)點(diǎn)等所有節(jié)點(diǎn))
1.parentNode:獲取父節(jié)點(diǎn)
2.childNodes:獲取子節(jié)點(diǎn),通過(guò)索引值獲取各個(gè)子節(jié)點(diǎn)
3.firstChild:獲取父節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)
4.lastChild:獲取父節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)
5.nextSibling:獲取子節(jié)點(diǎn)相鄰的下一個(gè)兄弟節(jié)點(diǎn)
6.previousSibling:獲取子節(jié)點(diǎn)相鄰的前一個(gè)兄弟節(jié)點(diǎn)
7.attributes:獲取屬性節(jié)點(diǎn)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>由節(jié)點(diǎn)關(guān)系獲取元素</title> <style> </style> </head> <body> <div name="div1"> <p name='p1'>文本節(jié)點(diǎn)</p> <p>2</p> <ul> <li>3</li> <li id="li4">4</li> <li>5</li> <li>6</li> </ul> </div> <section>7</section> <main><span>8</span><i>9</i></main> <script> //注意換行和空格也屬于結(jié)點(diǎn),屬于文本節(jié)點(diǎn),按節(jié)點(diǎn)關(guān)系訪問(wèn)時(shí)需要考慮。屬性節(jié)點(diǎn)無(wú)須考慮。 //1. parentNode獲取div console.log(document.querySelector('p').parentNode); console.log(document.querySelector('p').parentNode.attributes[0]); console.log(document.querySelector('p').parentNode.nodeName); //DIV console.log(document.querySelector('p').parentNode.nodeValue); //null console.log(document.querySelector('p').parentNode.nodeType); //1 元素節(jié)點(diǎn) // 2.通過(guò)childNodes獲取第一個(gè)p console.log(document.querySelector('div').childNodes[1]); console.log(document.querySelector('div').childNodes[1].firstChild.nodeName); console.log(document.querySelector('div').childNodes[1].firstChild.nodeType); //2 文本節(jié)點(diǎn) console.log(document.querySelector('div').childNodes[1].firstChild.nodeValue); // 3.firstChild獲取main中的第一個(gè)子節(jié)點(diǎn) console.log(document.querySelector('main').firstChild); // 4.lastChild獲取main中的最后一個(gè)子節(jié)點(diǎn) console.log(document.querySelector('main').lastChild); // 5.nextSibling獲取相鄰下一個(gè)兄弟元素 console.log(document.querySelector('#li4').nextSibling.nextSibling); // 6.previousSibling獲取相鄰上一個(gè)兄弟元素 console.log(document.querySelector('#li4').previousSibling.previousSibling); // 總結(jié):除parentNode外,其他方法謹(jǐn)慎選擇,一旦代碼格式有變,就會(huì)出現(xiàn)錯(cuò)誤 // 通過(guò)nodeName獲取節(jié)點(diǎn)名稱 //通過(guò)nodeValue獲取節(jié)點(diǎn)值 // 通過(guò)nodeType返回節(jié)點(diǎn)類型 </script> </body> </html>
(2)獲取元素節(jié)點(diǎn)
1.parentElement:獲取父元素節(jié)點(diǎn)
2.children:獲取子元素節(jié)點(diǎn),通過(guò)索引值獲取各個(gè)子元素節(jié)點(diǎn)
3.firstElementChild:獲取父級(jí)的第一個(gè)子元素節(jié)點(diǎn)
4.lastElementChild:獲取父級(jí)的最后一個(gè)子元素節(jié)點(diǎn)
5.nextElementSibling:獲取相鄰的下一個(gè)兄弟元素節(jié)點(diǎn)
6.previousElementSibling:獲取相鄰的前一個(gè)兄弟元素節(jié)點(diǎn)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>獲取子元素節(jié)點(diǎn)</title> </head> <body> <div> <p>123</p> <p>456</p> <p>789</p> </div> <script> //p標(biāo)簽總體算一個(gè)節(jié)點(diǎn),內(nèi)部的“123”不算 console.log(document.querySelector('div').childNodes); console.log(document.querySelector('div').childNodes.length); // 獲取子元素節(jié)點(diǎn) console.log(document.querySelector('div').children); console.log(document.querySelector('div').children[1]); console.log(document.querySelector('div').firstElementChild); console.log(document.querySelector('div').firstElementChild.nextElementSibling); console.log(document.querySelector('div').lastElementChild); console.log(document.querySelector('div').lastElementChild.previousElementSibling); console.log(document.querySelector('div').children[1].parentElement); </script> </body> </html>
讀到這里,這篇“JavaScript中如何利用DOM節(jié)點(diǎn)獲取頁(yè)面元素”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。