วิธี 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));