Rumah >hujung hadapan web >tutorial js >Bolehkah saya Mengakses Elemen DOM mengikut ID sebagai Sifat Global, dan Patutkah Saya?

Bolehkah saya Mengakses Elemen DOM mengikut ID sebagai Sifat Global, dan Patutkah Saya?

Susan Sarandon
Susan Sarandonasal
2024-12-21 13:25:13493semak imbas

Can I Access DOM Elements by ID as Global Properties, and Should I?

Elemen DOM yang Diberikan ID dan Sifat Global

Dalam soalan sebelumnya, diperhatikan bahawa elemen DOM khusus dengan ID boleh diakses sebagai pembolehubah nama atau sifat objek tetingkap dalam Internet Explorer dan Chrome. Sebagai contoh, untuk elemen HTML:

<div>

Sifat innerHTML boleh diambil seperti berikut:

alert(example.innerHTML); // Alerts "some text".
alert(window["example"].innerHTML); // Alerts "some text".

Ini menimbulkan persoalan:

  • Adakah semua elemen DOM dengan ID ditukar kepada sifat objek global?
  • Bolehkah mekanisme ini digunakan sebagai alternatif kepada kaedah getElementById?

Properties dan Kebolehcapaian Global

Gelagat yang dimaksudkan adalah untuk elemen yang dinamakan menjadi sifat jelas objek dokumen. Walau bagaimanapun, pendekatan ini bermasalah kerana ia membenarkan nama elemen bercanggah dengan sifat dokumen sebenar.

Microsoft Internet Explorer memburukkan lagi isu dengan menetapkan elemen bernama sebagai sifat objek tetingkap. Ini merumitkan lagi perkara dengan menghendaki mengelakkan nama elemen yang sepadan dengan mana-mana ahli dokumen atau objek tetingkap.

Isu dengan Kebolehcapaian Global

Selain itu, elemen yang dinamakan boleh dilihat sebagai pembolehubah seperti global. Walaupun pembolehubah global dan pengisytiharan fungsi biasanya membayanginya, memberikan nilai kepada pembolehubah global dengan nama yang sepadan boleh mengakibatkan ralat dalam Internet Explorer.

Amalan Terbaik

Ia secara amnya tidak digalakkan untuk bergantung pada elemen yang dinamakan sebagai sifat global atau meninggalkan pengisytiharan var apabila mencipta pembolehubah global. Mematuhi document.getElementById disyorkan kerana sokongannya yang lebih luas dan kesamaran yang dikurangkan. Pertimbangkan untuk menggunakan fungsi pembungkus mudah dengan nama yang lebih pendek jika menaip menjadi masalah.

Caching dan Pengoptimuman Penyemak Imbas

Mengekalkan cache carian id-ke-elemen biasanya tidak diperlukan kerana pelayar sering mengoptimumkan panggilan getElementById menggunakan carian pantas. Isu yang berpotensi timbul apabila elemen menukar ID atau ditambah/dialih keluar daripada dokumen.

Penstandardan dan Implikasi Masa Hadapan

Spesifikasi HTML5 kini mengkodifikasikan amalan yang tidak standard sebelum ini menambah elemen bernama pada dokumen dan sifat tetingkap. Ini bermakna Firefox 4 juga akan menyokong fungsi ini.

Kesimpulan

Walaupun mungkin untuk mengakses elemen DOM dengan ID sebagai sifat global dalam penyemak imbas tertentu, amalan ini adalah tidak digalakkan kerana potensi konflik dan kekaburan. Adalah lebih baik untuk bergantung pada document.getElementById atau fungsi pembungkus yang mudah.

Atas ialah kandungan terperinci Bolehkah saya Mengakses Elemen DOM mengikut ID sebagai Sifat Global, dan Patutkah Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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