การเข้าถึงและการ update HTML DOM
การอ่านและการเขียน Content html จาก javascript
จาก 2 หัวข้อที่ผ่านไปตอนนี้เราจะสามารถ access html ทั้งการ access โดยตรงและการดักจับจาก event ออกมาได้
โจทย์ต่อไป เราจะพาทำทั้ง 2 เคสคือ การอ่าน และการเขียน Content โดยจะขอเล่นผ่าน 3 ตัวคือ textContent, innerText, innerHTML
การอ่าน Content จาก html element
- textContent ทำการดึงข้อความทั้งหมดของ element นั้นออกมา
ตัวอย่าง ทำการดึงข้อความของหัวข้อออกมาผ่าน id หลังจากที่กดปุ่ม button ตกลง ไปแล้ว
<h1 id="header">Header</h1>
<button id="click" onclick="clickButton()">ปุ่มส่ง</button>
<script>
function clickButton () {
let header = document.getElementById('header')
// แสดง "Header" ออกมา
console.log('header textcontent', header.textContent)
}
</script>
- innerText ทำการดึงข้อความ "ที่มองเห็นเท่านั้น" ทั้งหมดของ element นั้นออกมา (ไม่นับพวก display: none ด้วย)
ตัวอย่าง ทำการดึงข้อความของหัวข้อออกมาผ่าน id หลังจากที่กดปุ่ม button ตกลง ไปแล้ว โดยที่ด้านในมี display: none ที่ซ่อนการมองเห็นไว้
<h1 id="header">Head<span style="display:none;">er</span></h1>
<button id="click" onclick="clickButton()">ปุ่มส่ง</button>
<script>
function clickButton () {
let header = document.getElementById('header')
// แสดง "Head" ออกมา
console.log('header textcontent', header.innerText)
}
</script>
- innerHTML ทำการดึง html ที่อยู่ภายใต้ element ตัวนั้นทั้งหมดออกมา
ตัวอย่าง ทำการดึง html ข้างในของหัวข้อออกมาผ่าน id หลังจากที่กดปุ่ม button ตกลงไป
<h1 id="header">Head<span style="display:none;">er</span></h1>
<button id="click" onclick="clickButton()">ปุ่มส่ง</button>
<script>
function clickButton () {
let header = document.getElementById('header')
// แสดง "Head<span style="display:none;">er</span>" ออกมา
console.log('header textcontent', header.innerHTML)
}
</script>