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”。
- 傳回值是一個類數組。