เมธอด insertAdjacentHTML() ใช้แทรกสตริง HTML เข้าไปในตำแหน่งที่ระบุเทียบกับโหนดอ้างอิง (แปลงสตริงเป็น DOM nodes จริง)
ไวยากรณ์ (Syntax)
node.insertAdjacentHTML("positionString", "htmlString")
สตริงตำแหน่ง (Position Strings)
| positionString | คำอธิบาย |
|---|---|
| afterbegin | แทรก HTML หลังจุดเริ่มต้นของโหนด (ภายในด้านหน้า) |
| afterend | แทรก HTML หลังโหนดอ้างอิง (ภายนอกด้านหลัง) |
| beforebegin | แทรก HTML ก่อนโหนดอ้างอิง (ภายนอกด้านหน้า) |
| beforeend | แทรก HTML ก่อนจุดสิ้นสุดของโหนด (ภายในด้านหลัง) |
htmlString
สามารถเป็นโค้ด HTML ใดๆ ที่ถูกต้อง เช่น <span>new span</span> หรือ <p>This is a new paragraph</p>
ตัวอย่างการใช้งาน
ตัวอย่างด้านล่างเพิ่ม "Son" ลงในต้นไม้ครอบครัว:
<!DOCTYPE html>
<html>
<head>
<title>insertAdjacentHTML()</title>
<style>
form { width: 70%; margin: 0 auto; text-align: center; }
* { padding: 2px; margin: 5px; }
input[type="button"] { border-radius: 10px; }
</style>
</head>
<body>
<form>
<fieldset>
<legend>insertAdjacentHTML()</legend>
<h1>Family Tree</h1>
<span id="GrandFather">Grand Father --></span>
<span id="Father">Father --></span>
<span id="Myself">Myself</span>
<input type="button" onclick="rectifyTree()" value="Son is born">
</fieldset>
</form>
<script>
function rectifyTree() {
var MSpan = document.getElementById("Myself");
MSpan.insertAdjacentHTML("afterend", "<span id='Son'>-->Son</span>");
}
</script>
</body>
</html>
ผลลัพธ์
ก่อนคลิกปุ่ม "Son is born": แสดง Grand Father → Father → Myself
หลังคลิกปุ่ม "Son is born": แสดง Grand Father → Father → Myself → Son
หมายเหตุ: รูปภาพตัวอย่างจากต้นฉบับไม่ได้รวมอยู่ในเนื้อหานี้
⚠ คำเตือนด้านความปลอดภัย: ใช้ insertAdjacentHTML() อย่างระมัดระวังกับข้อมูลจากผู้ใช้ เพื่อป้องกัน XSS attacks ควรใช้ insertAdjacentText() หรือ createElement() แทนเมื่อเป็นไปได้