選我選我選我。
列表
備註:
- HTMLCollection 和 NodeList 都是 array-like-object
- 注意 Element 有 S 跟沒有 S 的差別,有 S 通常代表陣列(多個結果)
getElementsByTagName(tagName)
回傳「陣列」結果
1 2
| const element = document.getElementsByTagName('div') console.log(element)
|
getElementById(id)
回傳「節點」(id 只會有一個)
1 2
| const element = document.getElementById('yo') console.log(element)
|
getElementsByClassName(className)
回傳「陣列」結果
1 2
| const element = document.getElementsByClassName('block') console.log(element)
|
querySelector(selector)
回傳第一個找到的「節點」
備註:注意參數是 「css selector」
1 2
| const element = document.querySelector('.block') console.log(element)
|
querySelectorAll(selector)
回傳所有符合結果的「陣列」
備註:注意參數是 「css selector」
1 2
| const element = document.querySelectorAll('.block') console.log(element)
|
element.childNodes
取出所有子節點(注意文字跟註解節點)
1 2 3 4 5 6 7
| <div class="block"> <p>123</p> <p>123</p> <p>123</p> </div>
|
1 2 3 4
| const parent = document.querySelector('.block') const childrens = parent.childNodes console.log(childrens)
|
element.firstChild
取出第一個子節點(注意文字跟註解節點)
1 2 3 4 5 6 7 8
| <div class="block"> <p>123</p> <p>123</p> <p>123</p> </div>
|
1 2 3 4
| const parent = document.querySelector('.block') const commentNode = parent.firstChild const commentNode = parent.firstChild.nextSibling const p = parent.firstChild.nextSibling.nextSibling.nextSibling
|
element.firstElementChild
取出第一個「元素」子節點(不會選到文字或註解節點)
1 2 3 4
| <div id="foo"> <span>Hello</span> </div>
|
1 2
| console.log(document.getElementById('foo').firstElementChild)
|
element.lastElementChild
取出第一個「元素」子節點(不會選到文字或註解節點)
1 2 3 4
| <div id="foo"> <span>Hello</span> <p>yoyoyo</p> </div>
|
1 2
| console.log(document.getElementById('foo').lastElementChild)
|
element.closest(selector)
找到「上層第一個」符合選取器的父元素
1 2 3 4 5 6
| <ul> <li><a href="#">abc</a></li> <li><a href="#">abc</a></li> <li><a href="#">abc</a></li> <li><a href="#">abc</a></li> </ul>
|
1 2
| const parent = document.querySelector('a').closest('li') console.log(parent)
|
element.parentNode
找到父元素
1 2
| const parent = document.querySelectorAll('li')[3].parentNode console.log(parent)
|
getElementsByName
透過 name
的值來取得元素(陣列)
1 2 3 4 5 6 7 8
| <div class="block"> <p name="gender">123</p> <p name="gender">123</p> <p name="gender">123</p> <input type="radio" name="gender" /> <input type="radio" name="gender" /> <input type="radio" name="gender" /> </div>
|
1 2
| console.log(document.getElementsByName('gender'))
|