โฮมเพจ » การเข้ารหัส » 15 วิธีจาวาสคริปต์สำหรับการจัดการ DOM สำหรับนักพัฒนาเว็บ

    15 วิธีจาวาสคริปต์สำหรับการจัดการ DOM สำหรับนักพัฒนาเว็บ

    ในฐานะนักพัฒนาเว็บคุณต้องจัดการบ่อยครั้ง DOM, โมเดลวัตถุที่เบราว์เซอร์ใช้ ระบุโครงสร้างตรรกะ ของเว็บเพจและใช้โครงสร้างนี้เป็น แสดงองค์ประกอบ HTML บนหน้าจอ.

    HTML กำหนด โครงสร้าง DOM เริ่มต้น. อย่างไรก็ตามในหลายกรณีคุณอาจต้องการจัดการกับ JavaScript โดยทั่วไปเพื่อ เพิ่มฟังก์ชันพิเศษ ไปยังเว็บไซต์.

    IMAGE: นักพัฒนาของ Google

    ในโพสต์นี้คุณจะพบรายการ 15 เมธอด JavaScript พื้นฐาน ที่ ช่วยเหลือการจัดการ DOM. คุณน่าจะใช้วิธีการเหล่านี้บ่อยครั้งในรหัสของคุณและคุณจะชนพวกเขาในบทช่วยสอน JavaScript ของเรา.

    1. querySelector ()

    querySelector () วิธี ส่งคืนองค์ประกอบแรกที่ตรงกับตัวเลือก CSS อย่างน้อยหนึ่งตัว. หากไม่พบข้อมูลที่ตรงกันจะส่งคืน โมฆะ.

    ก่อน querySelector () เปิดตัวนักพัฒนาใช้กันอย่างแพร่หลาย getElementById () วิธีการซึ่ง ดึงองค์ประกอบที่มีการระบุ รหัส ราคา.

    แม้ว่า getElementById () ยังคงเป็นวิธีที่มีประโยชน์ แต่ด้วยวิธีการใหม่กว่า querySelector () และ querySelectorAll () วิธีการที่เรามีอิสระที่จะ องค์ประกอบเป้าหมายตามตัวเลือก CSS ใด ๆ, ทำให้เรามีความยืดหยุ่นมากขึ้น.

    วากยสัมพันธ์
    var ele = document.querySelector (ตัวเลือก);
    • เอเล - องค์ประกอบแรกที่ตรงกันหรือ โมฆะ (ถ้าไม่มีองค์ประกอบใดตรงกับตัวเลือก)
    • ผู้เลือก - ตัวเลือก CSS อย่างน้อยหนึ่งตัวเช่น "#fooId", ".fooClassName", " .class1.class2", หรือ ".class1, .class2"
    ตัวอย่างรหัส

    ในตัวอย่างนี้ก่อน

    ได้รับเลือกด้วย querySelector () วิธีการและสีของมันจะเปลี่ยนเป็นสีแดง.

     

    วรรคหนึ่ง

    วรรคสอง

    div หนึ่ง

    วรรคสาม

    div สอง
     var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red'; 
    การสาธิตเชิงโต้ตอบ

    ทดสอบ querySelector () วิธีการในการสาธิตเชิงโต้ตอบต่อไปนี้ เพียงพิมพ์ตัวเลือกที่ตรงกับสิ่งที่คุณสามารถหาได้ในกล่องสีฟ้า (เช่น. #สาม) และคลิกปุ่มเลือก โปรดทราบว่าถ้าคุณพิมพ์ .กลุ่ม, ตัวอย่างแรกเท่านั้น จะถูกเลือก.

    2. querySelectorAll ()

    แตกต่าง querySelector () ที่ส่งกลับเฉพาะอินสแตนซ์แรกขององค์ประกอบที่ตรงกันทั้งหมด, querySelectorAll () ส่งคืนองค์ประกอบทั้งหมดที่ตรงกับตัวเลือก CSS ที่ระบุ.

    องค์ประกอบที่ตรงกันจะถูกส่งกลับเป็น NodeList วัตถุที่จะเป็นวัตถุว่างเปล่าหากไม่พบองค์ประกอบที่ตรงกัน.

    วากยสัมพันธ์
    var eles = document.querySelectorAll (ตัวเลือก);
    • eles - NodeList วัตถุที่มีองค์ประกอบที่ตรงกันทั้งหมดเป็นค่าคุณสมบัติ วัตถุนั้นว่างเปล่าหากไม่พบรายการที่ตรงกัน.
    • ผู้เลือก - ตัวเลือก CSS อย่างน้อยหนึ่งตัวเช่น "#fooId", ".fooClassName", " .class1.class2", หรือ ".class1, .class2"
    ตัวอย่างรหัส

    ตัวอย่างด้านล่างใช้ HTML เช่นเดียวกับก่อนหน้านี้ อย่างไรก็ตามในตัวอย่างนี้ย่อหน้าทั้งหมดจะถูกเลือกด้วย querySelectorAll (), และเป็นสีฟ้า.

     

    วรรคหนึ่ง

    วรรคสอง

    div หนึ่ง

    วรรคสาม

    div สอง
     var ย่อหน้า = document.querySelectorAll ('p'); สำหรับ (var p ของย่อหน้า) p.style.color = 'blue'; 

    3. addEventListener ()

    เหตุการณ์ที่เกิดขึ้น อ้างถึงสิ่งที่เกิดขึ้นกับองค์ประกอบ HTML เช่นการคลิกการโฟกัสหรือการโหลดซึ่งเราสามารถโต้ตอบกับ JavaScript ได้ เราสามารถกำหนดฟังก์ชั่น JS ให้กับ ฟัง สำหรับเหตุการณ์เหล่านี้ในองค์ประกอบและทำบางสิ่งบางอย่างเมื่อเหตุการณ์เกิดขึ้น.

    คุณสามารถทำได้สามวิธี กำหนดฟังก์ชั่นให้กับเหตุการณ์บางอย่าง.

    ถ้า foo () เป็นฟังก์ชั่นที่กำหนดเองคุณสามารถลงทะเบียนได้ เป็นผู้ฟังเหตุการณ์คลิก (เรียกว่าเมื่อองค์ประกอบปุ่มถูกคลิก) ในสามวิธี:

    1.  
    2.  var btn = document.querySelector ('ปุ่ม'); btn.onclick = foo;
    3.  var btn = document.querySelector ('ปุ่ม'); btn.addEventListener ('คลิก', foo);

    วิธีการ addEventListener () (ทางออกที่สาม) มี ข้อดีบางอย่าง; มันเป็นมาตรฐานล่าสุด - อนุญาตให้กำหนดมากกว่าหนึ่งฟังก์ชั่นเป็นผู้ฟังเหตุการณ์หนึ่งเหตุการณ์ - และมาพร้อมกับชุดตัวเลือกที่มีประโยชน์.

    วากยสัมพันธ์
    ele.addEventListener (evt, listener, [options]);
    • เอเล - องค์ประกอบ HTML ที่ผู้ฟังเหตุการณ์จะรับฟัง.
    • EVT - เหตุการณ์เป้าหมาย.
    • ผู้ฟัง - โดยทั่วไปแล้วฟังก์ชัน JavaScript.
    • ตัวเลือก - (เป็นทางเลือก) วัตถุที่มีชุดของคุณสมบัติบูลีน (ด้านล่าง).
    ตัวเลือก จะเกิดอะไรขึ้นเมื่อตั้งค่าเป็น จริง?
    การจับกุม

    หยุดการเดือดปุด ๆ ของเหตุการณ์เช่นป้องกันการโทรของผู้ฟังเหตุการณ์ใด ๆ สำหรับประเภทเหตุการณ์เดียวกันในบรรพบุรุษขององค์ประกอบ.

    ในการใช้คุณสมบัตินี้คุณสามารถใช้ 2 ไวยากรณ์:

    1. ele.addEventListener (evt, listener, true)
    2. ele.addEventListener (evt, listener, capture: true);
    ครั้งหนึ่ง

    ผู้ฟังจะถูกเรียกเพียงครั้งแรกที่มีเหตุการณ์เกิดขึ้นจากนั้นจะถูกนำออกจากกิจกรรมโดยอัตโนมัติและจะไม่ถูกเรียกใช้อีกต่อไป.

    อยู่เฉยๆ

    การกระทำเริ่มต้นของเหตุการณ์ไม่สามารถหยุดได้ด้วยเมธอด PreventDefault ().

    ตัวอย่างรหัส

    ในตัวอย่างนี้เราเพิ่มฟังเหตุการณ์คลิกที่เรียกว่า foo, ไปที่

     var btn = document.querySelector ('ปุ่ม'); btn.addEventListener ( 'คลิก', foo); ฟังก์ชั่น foo () alert ('hello'); 
    การสาธิตเชิงโต้ตอบ

    มอบหมายให้ foo () ฟังก์ชั่นที่กำหนดเองเป็นผู้ฟังเหตุการณ์ในสามเหตุการณ์ต่อไปนี้: อินพุต, คลิก หรือ วางเมาส์ & ทริกเกอร์เหตุการณ์ที่เลือกในฟิลด์อินพุตด้านล่างโดยการโฮเวอร์คลิกหรือพิมพ์.

    4. removeEventListener ()

    removeEventListener () วิธี แยกผู้ฟังเหตุการณ์ เพิ่มก่อนหน้านี้ด้วย addEventListener () วิธี จากเหตุการณ์ที่กำลังฟังอยู่.

    วากยสัมพันธ์
    ele.removeEventListener (EVT, ฟัง, [ตัวเลือก]);

    ใช้ไวยากรณ์เดียวกับที่กล่าวไว้ข้างต้น addEventListener () วิธีการ (ยกเว้นสำหรับ ครั้งหนึ่ง ตัวเลือกที่ไม่รวม) ตัวเลือกที่ใช้จะเฉพาะเจาะจงมากเกี่ยวกับการระบุฟังที่จะแยกออก.

    ตัวอย่างรหัส

    ติดตามตัวอย่างรหัสที่เราใช้ที่ addEventListener (), ที่นี่เราลบฟังเหตุการณ์คลิกที่เรียกว่า foo จาก