js中DOM查詢?cè)胤椒偨Y(jié)

js中DOM查詢?cè)胤椒ㄖ饕琯etElementById、getElementsBy系列及querySelector系列,下面依次介紹下

  • DOM規(guī)范類

一、getElementById
getElementById

getElementById返回的值類型為[object HTMLDivElement]
上圖中測(cè)試的代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>

</head>

<body>
    <div id="parent">
        <div class="child"><a >百度鏈接</a></div>
    </div>
    <script>
        console.log(document.getElementById("parent"));
        console.log(document.getElementById("parent").toString());
    </script>


</body>
</html>
二、 getElementsByClassName
getElementsByClassName

getElementsByClassName返回的值的類型為[object HTMLCollection],在其后面添加數(shù)組編號(hào)[0]時(shí),返回的值的類型就變?yōu)閇object HTMLDivElement]


getElementsByClassName
三、getElementsByTagName
getElementsByTagName
getElementsByTagName

上述圖中的代碼為:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>

</head>

<body>
    <div class="parent">
        <div class="child"><a >百度鏈接</a></div>
    </div>
    <script>
        console.log(document.getElementsByTagName("a"));
        console.log(document.getElementsByTagName("a").toString());
    </script>


</body>
</html>

getElementsByTagName的返回值類型為[object HTMLCollection],加上數(shù)組編號(hào)[0]后會(huì)變成如下圖所示的結(jié)果

getElementsByTagName
四、getElementsByName
getElementsByName
getElementsByName
getElementsByName疑問!!!!

getElementsByName返回的值類型是[object NodeList]類型而不是[object HTMLCollection] !!! 但是其返回的確實(shí)是元素的集合(HTMLCollection)而非節(jié)點(diǎn)的集合(NodeList)《javascript高級(jí)程序設(shè)計(jì)》第三版第258頁

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>
</head>
<body>
    <fieldset>
        <legend>which color do you prefer</legend>
        <ul>
            <li><input type="radio" value="red" id="colorRed" name="color" >
                <label for="colorRed">Red</label> </li>
            <li><input type="radio" value="green" id="colorGreen" name="color" >
                <label for="colorGreen">Green</label> </li>
        </ul>
    </fieldset>
    <script>
        console.log(document.getElementsByName("color")) ;
        console.log(document.getElementsByName("color")[1]);
        console.log(document.getElementsByName("color").toString()) ;
        console.log(document.getElementsByName("color")[1].toString()) ;
    </script>
</body>
</html>
  • selectors API規(guī)范類

一、 querySelector()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>

</head>

<body>
<div id="parent">
    <div class="child">
        <a >百度鏈接</a>
    </div>
</div>
<script>
    console.log(document.querySelector("#parent"));
    console.log(document.querySelector("#parent").toString());
</script>


</body>
</html>
querySelector

querySelector 此時(shí)返回值類型為[object HTMLDivElement],將上述代碼改成如下形式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>

</head>

<body>
<div id="parent">
    <ul class="child">
        <li>我是child選擇器ul里的li1</li>
        <li>我是child選擇器ul里的li2</li>
    </ul>
    <div class="child">我是child選擇器的div </div>
</div>
<script>
    console.log(document.querySelector(".child "));
    console.log(document.querySelector(".child").toString());
</script>


</body>
</html>
querySelector 改后
二、querySelectorAll()

將上述代碼改成如下形式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測(cè)試</title>

</head>

<body>
<div id="parent">
    <ul class="child">
        <li>我是child選擇器ul里的li1</li>
        <li>我是child選擇器ul里的li2</li>
    </ul>
    <div class="child">我是child選擇器的div </div>
</div>
<script>
    console.log(document.querySelectorAll(".child "));
    console.log(document.querySelectorAll(".child").toString());
    console.log(document.querySelectorAll(".child ")[0]);
    console.log(document.querySelectorAll(".child")[0].toString());
</script>


</body>
</html>
querySelectorAll

需要說明的是querySelectorAll返回的是靜態(tài)(static)的NodeList!!!【一般NodeList及HTMLCollection均為實(shí)時(shí)的(live)】

**本文版權(quán)歸本人即簡書筆名:該賬戶已被查封 所有,如需轉(zhuǎn)載請(qǐng)注明出處。謝謝! *

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 一、問答 (一)、dom對(duì)象的innerText和innerHTML有什么區(qū)別? 使用innerText時(shí)只將相應(yīng)...
    該帳號(hào)已被查封_才怪閱讀 517評(píng)論 0 3
  • 文檔對(duì)象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結(jié)構(gòu)樹)提供了一個(gè)結(jié)構(gòu)化的表述并且定義了一種...
    mhy_web閱讀 421評(píng)論 0 0
  • 除了document對(duì)象,在DOM中最常用的就是Element對(duì)象了,Element對(duì)象表示HTML元素。 Ele...
    Alkaidx閱讀 899評(píng)論 0 0
  • 實(shí)際前端開發(fā)工作中,我們經(jīng)常會(huì)遇到要獲取某些元素,以達(dá)到更新該元素的樣式、內(nèi)容等目的。而文檔對(duì)象模型 (DOM) ...
    _Dot912閱讀 2,015評(píng)論 0 8
  • 第一彈 看了歡樂頌第一集,五個(gè)人,卻是概括了現(xiàn)在的大多數(shù)女性類型。第一集印象最深的一個(gè)情節(jié),酒吧開業(yè),樊勝美在家里...
    CAF魚閱讀 303評(píng)論 0 0