天天看點

js擷取DOM元素的方法(8種)

JS擷取DOM元素的方法(8種)

  • 通過ID擷取(getElementById)
  • 通過name屬性(getElementsByName)
  • 通過标簽名(getElementsByTagName)
  • 通過類名(getElementsByClassName)
  • 通過選擇器擷取一個元素(querySelector)
  • 通過選擇器擷取一組元素(querySelectorAll)
  • 擷取html的方法(document.documentElement)
  • document.documentElement是專門擷取html這個标簽的
  • 擷取body的方法(document.body)
  • document.body是專門擷取body這個标簽的。

1. 通過ID擷取(getElementById)

document.getElementById('id')
           
  • 上下文必須是document。
  • 必須傳參數,參數是string類型,是擷取元素的id。
  • 傳回值隻擷取到一個元素,沒有找到傳回null。

2. 通過name屬性(getElementsByName)

document.getElementById('id')
           
  • 上下文必須是document。内容
  • 必須傳參數,參數是是擷取元素的name屬性。
  • 傳回值是一個類數組,沒有找到傳回空數組。

3. 通過标簽名(getElementsByTagName)

var obj = document.getElementsByTagName('div');
for(let i = 0; i<obj.length; i++){
        obj[i].onclick = function(e){
            console.log(i)
        }
    }
           
  • 上下文可以是document,也可以是一個元素,注意這個元素一定要存在。
  • 參數是是擷取元素的标簽名屬性,不區分大小寫。
  • 傳回值是一個類數組,沒有找到傳回空數組

4. 通過類名(getElementsByClassName)

var obj1 = document.getElementsByClassName('animated')
// console.log
0:div.app.animated
1:div#login.login.animated.rubberBand
2:div#reg.reg.animated.shake
3:div#kefu.kefu.animated.swing
4:div#LoginState.state.animated.bounce
5:div.loginState.animated
6:div.regState.animated
7:div.pop.animated
           
  • 上下文可以是document,也可以是一個元素。
  • 參數是元素的類名。
  • 傳回值是一個類數組,沒有找到傳回空數組。

5.通過選擇器擷取一個元素(querySelector)

document.querySelector('.animated')
           
  • 上下文可以是document,也可以是一個元素。
  • 參數是選擇器,如:”div .className”。
  • 傳回值隻擷取到第一個元素。

6.通過選擇器擷取一組元素(querySelectorAll)

document.querySelector('.animated')
           
  • 上下文可以是document,也可以是一個元素。
  • 參數是選擇器,如:”div .className”。
  • 傳回值是一個類數組。

繼續閱讀