Bagaimanakah HTMLCollections, NodeLists dan Tatasusunan Objek Berbeza dalam Manipulasi DOM?

Susan Sarandon
Lepaskan: 2024-10-29 01:51:02
asal
748 orang telah melayarinya

How do HTMLCollections, NodeLists, and Object Arrays Differ in DOM Manipulation?

Membezakan HTMLCollections, NodeLists dan Object Arrays dalam DOM

Apabila mengakses nod DOM, pembangun sering menghadapi HTMLCollections, NodeLists dan tatasusunan objek. Memahami perbezaan antara struktur data ini adalah penting untuk memanipulasi struktur dokumen dengan berkesan.

HTMLCollections vs. NodeLists

HTMLCollections dan NodeLists berkongsi persamaan sebagai koleksi nod, tetapi mereka mempunyai ciri yang berbeza:

  • Kandungan: HTMLKoleksi hanya mengandungi nod Elemen, manakala NodeLists boleh menyimpan sebarang jenis nod.
  • Kaedah: Dalam sebagai tambahan kepada kaedah biasa untuk semua koleksi, HTMLCollections menyediakan kaedah NameItem untuk mengakses elemen mengikut nama.

Live vs. Snapshot Collections

Koleksi DOM boleh sama ada langsung atau syot kilat:

  • Siaran Langsung: Koleksi dikemas kini secara automatik apabila perubahan dibuat pada DOM.
  • Snapshot: Koleksi kekal tetap, tanpa mengira pengubahsuaian DOM.

Koleksi DOM yang dikembalikan melalui kaedah penyemak imbas (cth., getElementsByTagName) biasanya disiarkan secara langsung, manakala pilihan jQuery ialah syot kilat.

Array lwn. Object Arrays

Turutan Objek:

Tatasusunan yang mana elemen diakses menggunakan kedua-dua sifat numerik dan bernama.

  • Memilih Nod
  • Menggunakan Kaedah Dokumen:

document.getElementsByTagName("td"): Mengembalikan HTMLCollection semua elemen td.document.getElementsByClassName("myRow"): Return Senarai Node semua elemen dengan kelas "myRow".

Menggunakan jQuery:

  • $("td"): Memilih semua elemen td dan mengembalikan objek jQuery, tatasusunan objek.

Skrip Contoh

Skrip yang disediakan menunjukkan perbezaan antara struktur data:
    • console.log('[123,"abc",321,"cba"]=[123,"abc",321,"cba"]: Membandingkan tatasusunan.
    • konsol. log('{123:123,abc:"abc",321:321,cba:"cba"}={123:123,abc:"abc",321:321,cba:"cba"}: Membandingkan tatasusunan objek dengan sintaks objek.
    • console.log('Node=',Node): Log objek Nod global, iaitu tatasusunan objek yang mewakili jenis nod.
    • console.log('document. links=',document.links): Log HTMLKoleksi pautan.
    • console.log('document.getElementById("myTable")=',document.getElementById("myTable")): Log satu elemen, bukan koleksi.
    • console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow")): Log senarai Node elemen dengan kelas "myRow".
    • console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td")): Log HTMLKoleksi semua elemen td.
    • console.log( '$("#myTable")=',$("#myTable")): Log objek jQuery yang mewakili elemen #myTable.
    • console.log('$("td")=', $("td")): Log tatasusunan objek jQuery yang mengandungi semua elemen td.

Atas ialah kandungan terperinci Bagaimanakah HTMLCollections, NodeLists dan Tatasusunan Objek Berbeza dalam Manipulasi DOM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!