溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript中如何利用DOM節(jié)點(diǎn)獲取頁(yè)面元素

發(fā)布時(shí)間:2022-08-08 15:02:11 來(lái)源:億速云 閱讀:138 作者:iii 欄目:web開(kāi)發(fā)

本文小編為大家詳細(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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI