วิธี insertBefore() ของ XML DOM
การเรียกใช้และการนิยาม
วิธี insertBefore() ใส่ตัวแทนลูกใหม่ก่อนตัวแทนลูกที่มีอยู่
วิธีนี้จะคืนค่าตัวแทนลูกที่ใหม่
บทเทคนิค:
elementNode.insertBefore(new_node,existing_node)
ตัวแปร | บทความ |
---|---|
new_node | จำเป็นต้องมีตัวแทน. ตัวแทนที่ต้องการใส่. |
existing_node | จำเป็นต้องมีตัวแทน. ใส่ตัวแทนใหม่ก่อนตัวแทนนี้. |
คำแนะนำและหมายเหตุ:
หมายเหตุ:Internet Explorer จะละเลยตัวแทนข้อความช่องว่างที่สร้างขึ้นระหว่างตัวแทน (เช่น ตัวอักษรของช่องว่าง) ในขณะที่ Mozilla ไม่ทำแบบนี้ ดังนั้นในตัวอย่างดังนี้ เราใช้ฟังก์ชันเพื่อตรวจสอบปริมาณของตัวแทนลูกสุดท้าย
ปริมาณของตัวแทนของตัวแทนประเภทเศษเชิงนิยมเป็น 1 ดังนั้นถ้าตัวแทนลูกสุดท้ายไม่ใช่ตัวแทนประเภทเศษเชิงนิยม ก็เคลื่อนตัวไปยังตัวแทนเก่ากว่า และตรวจสอบว่าตัวแทนนี้เป็นตัวแทนประเภทเศษเชิงนิยมหรือไม่ กระบวนการนี้จะทำต่อไปจนหาจนหาถึงตัวแทนประเภทเศษเชิงนิยมลูกสุดท้าย ด้วยวิธีนี้ จะได้ผลลัพธ์ที่ถูกต้องใน Internet Explorer และ Mozilla
สำหรับข้อมูลเกี่ยวกับความแตกต่างระหว่าง Internet Explorer และ Mozilla นักเขียน โปรดเข้าชมคู่มือ XML DOM ที่ CodeW3C.com DOM นักเขียน ในบทนี้
ตัวอย่าง
ในทุกตัวอย่างที่เราใช้แบบไฟล์ XML books.xmlและฟังก์ชัน JavaScript loadXMLDoc()。
รหัสบทดังนี้สร้างตัวแทน <book> โดยแบบภาพใหม่ และใส่เข้าไปก่อนหน้านี้ของตัวแทน <book> ที่สุดในเอกสาร:
//ตรวจสอบว่าหลักล่าสุดเด็กคือโหมด element
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));