แทรก Javascript ก่อนตัวอย่าง การอ้างอิง JavaScript: ดัชนีวิธีการ: วิธีการ JavaScript เริ่มต้นด้วย I การเพิ่มโหนดในแผนผัง

วิธีนี้ช่วยให้คุณสามารถนำเข้าหรือส่งออกบุ๊กมาร์ก "รายการโปรด"

External.ImportExportFavorites(true|false, "(Path)");

พารามิเตอร์แรกระบุการดำเนินการ: import (value จริง) หรือส่งออก (value เท็จ).

พารามิเตอร์ตัวที่สองระบุเส้นทางที่จะนำเข้าหรือส่งออกบุ๊กมาร์ก หากคุณระบุสตริงว่าง เว็บเบราว์เซอร์จะแสดงกล่องโต้ตอบมาตรฐานพร้อมกับการเลือกโฟลเดอร์

วิธีการไม่ส่งคืนค่า

อยู่ในช่วง

วิธีการนี้ช่วยให้คุณค้นหาได้ว่าวัตถุ TextRange ที่กำหนดอยู่ภายในวัตถุหรือไม่

(วัตถุ TextRange).inRange((วัตถุ TextRange กำลังเปรียบเทียบ));

วิธีการส่งคืน จริง ช่วงข้อความมีอยู่ภายในหรือเท่ากับวัตถุปัจจุบัน และ เท็จ- มิฉะนั้น.

ช่วงข้อความ.

รองรับ NN ตั้งแต่ 4.0

แทรกองค์ประกอบที่อยู่ติดกัน

วิธีการแทรกองค์ประกอบของหน้าที่สร้างขึ้นใหม่ภายในหรือถัดจากองค์ประกอบปัจจุบัน

(Object).insertAdjacentElement("beforeBegin|afterBegin|beforeEnd|afterEnd", (องค์ประกอบหน้าที่จะแทรก));

วิธีการนี้ใช้พารามิเตอร์สองตัว

พารามิเตอร์แรกระบุตำแหน่งที่จะแทรกองค์ประกอบของหน้า มีสี่ตัวเลือกสำหรับตัวเลือกนี้:

  • beforeBegin - องค์ประกอบจะถูกแทรกก่อนแท็กเปิดขององค์ประกอบหน้าปัจจุบัน
แทรกAdjacentHTML

วิธีการแทรกโค้ด HTML ภายในหรือถัดจากแท็กเฉพาะ

(Object).insertAdjacentHTML("beforeBegin|afterBegin|beforeEnd|afterEnd", (แทรกโค้ด HTML แล้ว));

วิธีการนี้ใช้พารามิเตอร์สองตัว

พารามิเตอร์แรกระบุตำแหน่งที่จะแทรกโค้ด HTML มีสี่ตัวเลือกสำหรับตัวเลือกนี้:

  • beforeBegin - โค้ดจะถูกแทรกก่อนแท็กเปิดขององค์ประกอบของหน้าปัจจุบัน
  • afterBegin - จะถูกแทรกหลังแท็กเปิดขององค์ประกอบหน้าปัจจุบัน
  • beforeEnd - จะถูกแทรกก่อนแท็กปิดขององค์ประกอบหน้าปัจจุบัน (แต่หลังจากเนื้อหาทั้งหมดของแท็ก)
  • afterEnd - จะถูกแทรกหลังแท็กปิดขององค์ประกอบของหน้าปัจจุบัน

พารามิเตอร์ตัวที่สองระบุโค้ด HTML ที่เราต้องการแทรก

แทรกข้อความที่อยู่ติดกัน

วิธีการแทรกข้อความภายในหรือถัดจากองค์ประกอบของหน้าเฉพาะ

(Object).insertAdjacentText("beforeBegin|afterBegin|beforeEnd|afterEnd", (แทรกข้อความ));

วิธีการนี้ใช้พารามิเตอร์สองตัว

พารามิเตอร์แรกระบุตำแหน่งที่จะแทรกข้อความ มีสี่ตัวเลือกสำหรับตัวเลือกนี้:

  • beforeBegin - ข้อความจะถูกแทรกก่อนแท็กเปิดขององค์ประกอบของหน้าปัจจุบัน
  • afterBegin - จะถูกแทรกหลังแท็กเปิดขององค์ประกอบหน้าปัจจุบัน
  • beforeEnd - จะถูกแทรกก่อนแท็กปิดขององค์ประกอบหน้าปัจจุบัน (แต่หลังจากเนื้อหาทั้งหมดของแท็ก)
  • afterEnd - จะถูกแทรกหลังแท็กปิดขององค์ประกอบของหน้าปัจจุบัน

พารามิเตอร์ตัวที่สองระบุข้อความที่เราต้องการแทรก

วิธีการนี้ไม่ส่งกลับค่า

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

แทรกก่อน

วิธีการแทรกองค์ประกอบลงในหน้า

(Object).insertBefore((องค์ประกอบของหน้าที่เราต้องการแทรก)[, "(องค์ประกอบลูก)"]);

วิธีการนี้ใช้พารามิเตอร์สองตัว

รองรับโดย IE ตั้งแต่เวอร์ชัน 5.0

แทรกเซลล์

วิธีการแทรกเซลล์ลงในแถวของตาราง

(วัตถุแถวตาราง).insertСell([(ดัชนี)]);

วิธีการนี้ใช้พารามิเตอร์ทางเลือกเพียงตัวเดียวเท่านั้น ซึ่งระบุดัชนีของเซลล์ที่แทรกใหม่ในคอลเลกชัน เซลล์.

หากไม่ได้ระบุพารามิเตอร์ เซลล์จะถูกเพิ่มที่ส่วนท้ายของคอลเลกชัน (value -1 ).

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

แทรกแถว

วิธีการแทรกเซลล์ลงในตารางหรือคอลัมน์ใดคอลัมน์หนึ่ง

(วัตถุแถวตาราง).insertRow([(ดัชนี)]);

วิธีการนี้ใช้พารามิเตอร์ทางเลือกเพียงตัวเดียวเท่านั้น ซึ่งระบุดัชนีของแถวที่แทรกใหม่ในคอลเลกชัน แถว.

หากไม่ได้ระบุพารามิเตอร์ บรรทัดจะถูกเพิ่มที่ส่วนท้ายของคอลเลกชัน (value -1 ).

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

มีความเท่าเทียมกัน

วิธีการนี้ช่วยให้คุณสามารถเปรียบเทียบวัตถุ TextRange บางส่วนกับวัตถุปัจจุบันได้

(วัตถุ TextRange).isEqual((วัตถุ TextRange กำลังเปรียบเทียบ));

วิธีการนี้ใช้เพียงพารามิเตอร์เดียว ซึ่งระบุการอ้างอิงถึงวัตถุที่กำลังเปรียบเทียบ ช่วงข้อความ.

วิธีการส่งคืน จริงถ้าวัตถุส่งผ่านพารามิเตอร์ ช่วงข้อความเท่ากับวัตถุปัจจุบัน

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

สมัครสมาชิกแล้ว

วิธีการนี้ช่วยให้คุณทราบว่าลูกค้าสมัครรับข้อมูลช่องใดช่องหนึ่งหรือไม่

External.IsSubscribed("(ที่อยู่อินเทอร์เน็ตของไฟล์ CDF)");

วิธีการนี้ใช้พารามิเตอร์เดียวเท่านั้น ซึ่งระบุที่อยู่อินเทอร์เน็ตของไฟล์ CDF ที่อธิบายช่องสัญญาณ

วิธีการส่งคืน จริงหากลูกค้าสมัครรับข้อมูลช่องนี้และ เท็จ- มิฉะนั้น.

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

รายการ

วิธีการส่งกลับองค์ประกอบคอลเลกชันที่มีหมายเลขที่กำหนด

(Collection).item((ดัชนี)[, (ดัชนีรอง)]);

วิธีการนี้ใช้พารามิเตอร์สองตัว

พารามิเตอร์แรกระบุดัชนีขององค์ประกอบที่ต้องการในคอลเลกชัน ดัชนีสามารถแสดงเป็นตัวเลขหรือค่าสตริงก็ได้

หากระบุดัชนีเป็นตัวเลข องค์ประกอบที่มีตัวเลขนั้นจะถูกส่งกลับ

หากระบุดัชนีเป็นค่าสตริง องค์ประกอบที่มีค่าแอตทริบิวต์ที่ส่งคืนจะเป็น บัตรประจำตัวประชาชนและ ชื่อตรงกับค่าสตริงนี้

หากมีค่าที่ส่งคืนหลายค่า คอลเลกชันใหม่จะถูกส่งกลับซึ่งมีองค์ประกอบที่พบทั้งหมดของคอลเลกชัน ในกรณีนี้ สามารถระบุพารามิเตอร์ทางเลือกตัวที่สองซึ่งระบุดัชนีรองที่ระบุหมายเลของค์ประกอบของคอลเลกชันรอง

หากไม่พบองค์ประกอบคอลเลกชันที่ตรงกัน วิธีการจะส่งกลับ โมฆะ.

รองรับดัชนีตัวเลขสำหรับคอลเลกชัน: บุ๊กมาร์ก, เด็ก, หน้า, เด็กโหนด, ช่วงการควบคุม, กฎ.

ดัชนีรองไม่พร้อมใช้งานสำหรับคอลเลกชัน: คุณลักษณะ, พฤติกรรมโกศ, ตัวกรอง, เฟรม, การนำเข้า, เนมสเปซ, สไตล์ชีต, ช่วงข้อความ, ข้อความสี่เหลี่ยมผืนผ้า.

รองรับโดย IE ตั้งแต่เวอร์ชัน 4.0

ในบทนี้ เราจะได้เรียนรู้วิธีสร้างโหนดองค์ประกอบ (createElement) และโหนดข้อความ (createTextNode) นอกจากนี้เรายังจะพิจารณาวิธีการที่ออกแบบมาสำหรับการเพิ่มโหนดลงในแผนผัง (appendChild, insertBefore) และสำหรับการลบโหนดออกจากแผนผัง (removeChild)

การเพิ่มโหนดให้กับทรี

การเพิ่มโหนดใหม่ให้กับแผนผังมักจะดำเนินการใน 2 ขั้นตอน:

  • สร้างโหนดที่ต้องการโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
    • createElement() - สร้างองค์ประกอบ (โหนด) ด้วยชื่อที่ระบุ (แท็ก) เมธอด createElement(element) มีพารามิเตอร์ที่จำเป็น (องค์ประกอบ) หนึ่งรายการ - นี่คือสตริงที่มีชื่อขององค์ประกอบ (แท็ก) ที่จะสร้าง ชื่อขององค์ประกอบ (แท็ก) ในพารามิเตอร์จะต้องเป็นตัวพิมพ์ใหญ่ เป็นผลให้เมธอดนี้ส่งคืนองค์ประกอบที่ถูกสร้างขึ้น
    • createTextNode() - สร้างโหนดข้อความที่มีข้อความที่ระบุ เมธอด createTextNode(text) มีพารามิเตอร์ที่จำเป็น (ข้อความ) หนึ่งรายการ - นี่คือสตริงที่มีข้อความของโหนดข้อความ เป็นผลให้วิธีนี้ส่งคืนโหนดข้อความที่สร้างขึ้น
  • ระบุตำแหน่งในแผนผังที่ควรแทรกโหนด เมื่อต้องการทำเช่นนี้ คุณต้องใช้วิธีใดวิธีหนึ่งต่อไปนี้:
    • appendChild() - เพิ่มโหนดเป็นลูกสุดท้ายขององค์ประกอบที่เรียกใช้เมธอดนี้ วิธีการ appendChild(node) มีพารามิเตอร์ที่จำเป็นหนึ่งรายการ: โหนดที่คุณต้องการเพิ่ม เป็นผลให้วิธีนี้ส่งคืนโหนดที่เพิ่มเข้ามา
    • insertBefore() - แทรกโหนดเป็นโหนดย่อยขององค์ประกอบที่เรียกใช้เมธอดนี้ เมธอด insertBefore(newNode,existingNode) มีพารามิเตอร์สองตัว: newNode (จำเป็น) คือโหนดที่คุณต้องการเพิ่ม, existingNode (เป็นทางเลือก) คือโหนดลูกขององค์ประกอบก่อนหน้าที่คุณต้องการแทรกโหนด หากไม่ได้ระบุพารามิเตอร์ตัวที่สอง (existingNode) วิธีการนี้จะแทรกไว้ที่ส่วนท้ายเช่น เป็นโหนดลูกสุดท้ายขององค์ประกอบที่ถูกเรียกเมธอดนี้ insertBefore() วิธีการส่งกลับโหนดที่แทรกเป็นผลลัพธ์

    ตัวอย่างเช่น:

    • คอมพิวเตอร์
    • แล็ปท็อป
    • แท็บเล็ต

    ลองพิจารณาตัวอย่างที่ซับซ้อนมากขึ้นโดยที่เราเพิ่มโหนด LI ลงในแผนผังซึ่งมีโหนดข้อความพร้อมข้อความ "สมาร์ทโฟน" ที่ส่วนท้ายของรายการ ul

    ในการทำเช่นนี้คุณต้องทำสิ่งต่อไปนี้:

  • สร้างองค์ประกอบ (โหนด) LI
  • สร้างโหนดข้อความที่มีข้อความ "สมาร์ทโฟน"
  • เพิ่มโหนดข้อความที่สร้างขึ้นเป็นโหนดลูกสุดท้ายขององค์ประกอบ LI ที่สร้างขึ้นใหม่
  • เพิ่มโหนด LI ที่สร้างขึ้นใหม่เป็นโหนดลูกสุดท้ายขององค์ประกอบ ul
  • //สร้างองค์ประกอบ (โหนด) li var elementLI = document.createElement("li"); //สร้างโหนดข้อความที่มีข้อความ "สมาร์ทโฟน" var textSmart= document.createTextNode("สมาร์ทโฟน"); // ผนวกโหนดข้อความที่สร้างขึ้นเป็นองค์ประกอบลูกสุดท้ายกับองค์ประกอบ LI ที่สร้างขึ้นใหม่ elementLI.appendChild(textSmart); // รับองค์ประกอบที่โหนด li ที่สร้างขึ้นจะถูกเพิ่มเป็นลูก var elementUL = document.getElementById("list"); //เพิ่มองค์ประกอบ li ที่สร้างขึ้นเป็นองค์ประกอบลูกสุดท้ายใน UL ด้วย id="list" elementUL.appendChild(elementLI);

    AppendChild() และ insertBefore() วิธีการเมื่อทำงานกับโหนดที่มีอยู่

    การทำงานกับโหนดที่มีอยู่โดยใช้เมธอด appendChild() และ insertBefore() นั้นดำเนินการใน 2 ขั้นตอนเช่นกัน:

  • รับโหนดที่มีอยู่ในแผนผัง
  • ระบุตำแหน่งที่ควรแทรกโหนดโดยใช้เมธอด appendChild() หรือ insertBefore() การดำเนินการนี้จะลบโหนดออกจากตำแหน่งก่อนหน้า
  • ตัวอย่างเช่น เพิ่มองค์ประกอบ li ที่มีอยู่ซึ่งมีข้อความ "แท็บเล็ต" ที่จุดเริ่มต้นของรายการ (ซึ่งจะลบออกจากตำแหน่งก่อนหน้า):

    //รับองค์ประกอบ UL ที่มีรายการตามรหัส var elementUL = document.getElementById("list"); //รับองค์ประกอบ li ที่มีโหนดข้อความ "แท็บเล็ต" var elementLI = elementUL.childNodes; //เพิ่มองค์ประกอบที่จุดเริ่มต้นของรายการ //ในกรณีนี้ องค์ประกอบจะถูกลบออกจากตำแหน่งเดิม elementUL.insertBefore(elementLI,elementUL.firstChild);

    ออกกำลังกาย
    • มีสองรายการในเอกสาร คุณต้องย้ายองค์ประกอบจากรายการที่สองไปยังรายการแรก
    • สร้างรายการ ช่องข้อความ และปุ่ม 2 ปุ่ม เขียนโค้ดใน JavaScript ซึ่งขึ้นอยู่กับปุ่มที่กด จะเพิ่มข้อความในช่องข้อความที่จุดเริ่มต้นหรือจุดสิ้นสุดของรายการ
    การลบโหนด

    การลบโหนดออกจากทรีจะดำเนินการใน 2 ขั้นตอน:

  • รับ (ค้นหา) โหนดนี้ในแผนผัง โดยทั่วไป การดำเนินการนี้จะดำเนินการโดยวิธีใดวิธีหนึ่งต่อไปนี้: getElementById() , getElementsByClassName() , getElementsByTagName() , getElementsByName() , querySelector() หรือ querySelectorAll()
  • เรียกเมธอด RemoveChild() บนโหนดหลัก ซึ่งจะต้องส่งผ่านเป็นพารามิเตอร์ของโหนดที่เราต้องการลบออก
    เมธอด RemoveChild() จะส่งคืนโหนดที่ถูกลบเป็นค่า หรือคืนค่าเป็นค่าว่างหากไม่มีโหนดที่เราต้องการลบ
  • //ค้นหาโหนดที่เราต้องการลบ var findElement = document.getElementById("notebook"); //เรียกเมธอด RemoveChild บนโหนดพาเรนต์ // และส่งผ่านโหนดที่พบเป็นพารามิเตอร์ findElement.parentNode.removeChild(findElement);

    ตัวอย่างเช่น ลบองค์ประกอบลูกสุดท้ายขององค์ประกอบที่มี id="myID" :

    //รับองค์ประกอบที่มี id="myID" var myID = document.getElementById("myID"); //รับโหนดลูกสุดท้ายขององค์ประกอบ myID var LastNode = myID.lastChild; //เพราะ เราไม่ทราบว่าโหนดลูกสุดท้ายขององค์ประกอบนั้นเป็นองค์ประกอบหรือไม่ // จากนั้นเราจะใช้การวนซ้ำ while เพื่อค้นหาลูกสุดท้ายขององค์ประกอบ myID // ตราบใดที่องค์ประกอบนั้นมีโหนดและประเภทของมันคือ ไม่ใช่ 1 (นั่นคือไม่ใช่องค์ประกอบ) ดำเนินการในขณะที่ (lastNode && LastNode.nodeType!=1) ( //ไปที่โหนดก่อนหน้า LastNode = LastNode.previousSibling; ) // ถ้าเราพบองค์ประกอบที่โหนด myID ถ้า (lastNode ) ( //จากนั้นจะต้องลบออก LastNode.parentNode.removeChild( LastNode);

    ตัวอย่างเช่น ลบโหนดย่อยทั้งหมดขององค์ประกอบที่มี id="myQuestion" :

    //รับองค์ประกอบที่เราต้องการลบโหนดลูกทั้งหมด var elementQuestion = document.getElementById("myQuestion"); // ในขณะที่มีองค์ประกอบแรกในขณะที่ (elementQuestion.firstElement) ( // ลบออก elementQuestion.removeChild(element.firstChild); )

    ออกกำลังกาย
  • เขียนฟังก์ชันที่จะลบโหนดข้อความทั้งหมดออกจากองค์ประกอบ
  • มี 2 ​​รายการ () เขียนโค้ด JavaScript ที่ลบองค์ประกอบทั้งหมดออกจากรายการ 1 และ 2
  • Node.insertBefore() วิธีการเพิ่มองค์ประกอบในรายการลูกของผู้ปกครองก่อนองค์ประกอบที่ระบุ

    ไวยากรณ์ var แทรกองค์ประกอบ = องค์ประกอบหลัก.ใส่ก่อน( ใหม่องค์ประกอบ, องค์ประกอบอ้างอิง);

    ใน Mozilla Firefox หากไม่ได้ตั้งค่า ReferenceElement หรือเป็น null newElement จะถูกแทรกที่ส่วนท้ายของรายการองค์ประกอบลูก ใน IE ReferenceElement เท่ากับไม่ได้กำหนดจะส่งข้อยกเว้น "อาร์กิวเมนต์ไม่ถูกต้อง" ในขณะที่ Chrome จะส่งข้อยกเว้น "Uncaught TypeError" โดยคาดว่าจะมี 2 อาร์กิวเมนต์

    • insertedElement องค์ประกอบที่แทรก
    • parentElement ผู้ปกครองสำหรับองค์ประกอบใหม่
    • newElement องค์ประกอบที่จะแทรก
    • ReferenceElement องค์ประกอบก่อนหน้าที่ newElement จะถูกแทรก
    ตัวอย่าง foo bar // สร้างอันใหม่ var sp1 = document.createElement("span"); // รับลิงก์ไปยังองค์ประกอบที่เราต้องการแทรก sp1 var sp2 = document.getElementById("childElement"); //รับลิงก์ไปยังพาเรนต์ sp2 var parentDiv = sp2.parentNode; // แทรก sp1 ก่อน sp2 parentDiv.insertBefore(sp1, sp2);

    อย่างไรก็ตาม ไม่มีวิธีการ insertAfter สามารถแทนที่ได้โดยใช้เมธอด insertBefore ร่วมกับ nextSibling

    ในตัวอย่างก่อนหน้านี้ สามารถแทรก sp1 หลัง sp2 ได้ดังนี้:

    ParentDiv.insertBefore(sp1, sp2.nextSibling);

    หาก sp2 ไม่มีองค์ประกอบถัดไป ก็จะเป็นองค์ประกอบย่อยสุดท้าย sp2.nextSibling จะคืนค่า null และ sp1 จะถูกแทรกที่ส่วนท้ายของโหนดย่อย (ทันทีหลังจาก sp2 )

    ตัวอย่างที่ 2

    การแทรกองค์ประกอบก่อนลูกคนแรกโดยใช้ firstChild

    // รับลิงก์ไปยังองค์ประกอบที่เราต้องการเพิ่มองค์ประกอบใหม่ var parentElement = document.getElementById("parentElement"); // รับการอ้างอิงถึงองค์ประกอบลูกแรก var theFirstChild = parentElement.firstChild; // สร้างองค์ประกอบใหม่ที่เราจะเพิ่ม var newElement = document.createElement("div"); // แทรกองค์ประกอบใหม่ก่อน parentElement.insertBefore ลูกแรก (newElement, theFirstChild);

    เมื่อผู้ปกครองไม่มีลูกคนแรก firstChild จะส่งคืนค่า null องค์ประกอบใหม่จะยังคงถูกแทรกหลังจากองค์ประกอบลูกสุดท้าย แต่เนื่องจากพ่อแม่ไม่มีลูกคนแรก จึงไม่มีลูกคนสุดท้าย ดังนั้น หลังจากเพิ่มองค์ประกอบเข้าไปแล้ว องค์ประกอบนั้นจะเป็นองค์ประกอบลูกเพียงองค์ประกอบเดียว

    ความเข้ากันได้ของเบราว์เซอร์ คุณสมบัติ Chrome Firefox (ตุ๊กแก) Internet Explorer Opera Safari (WebKit)
    การสนับสนุนขั้นพื้นฐาน 1.0 (ใช่) (ใช่) (ใช่) (ใช่)