Sifat Global dan Elemen Pokok DOM dengan ID
Dalam pelayar web seperti Internet Explorer dan Chrome, elemen dalam pepohon DOM dengan ID yang ditetapkan boleh diakses melalui objek global menggunakan ID mereka sebagai nama pembolehubah atau sifat objek tetingkap. Sebagai contoh, elemen dengan "contoh" ID boleh diperoleh menggunakan:
alert(example.innerHTML); // Alerts "some text".
atau
alert(window["example"].innerHTML); // Alerts "some text".
Walau bagaimanapun, tingkah laku ini tidak digalakkan atas beberapa sebab:
-
Bertentangan dengan Sifat Asli: Elemen yang dinamakan menjadi sifat objek dokumen, yang boleh bercanggah dengan sifat-sifatnya yang sebenarnya. IE menggabungkan lagi perkara ini dengan turut menambahkan elemen yang dinamakan sebagai sifat objek tetingkap, yang berpotensi berlanggar dengan ahli sedia ada.
-
Keterlihatan Skop Global: Elemen ini menjadi kelihatan sebagai pembolehubah seperti global. Walaupun pembolehubah global sebenar membayanginya dalam kod, mengetepikan pengisytiharan var dalam tugasan kepada pembolehubah global dengan nama bertembung boleh mengubah nilai elemen secara tidak sengaja.
-
Kekurangan Sokongan Merentas Penyemak Imbas: Hanya IE, Chrome , dan Opera pada mulanya menyokong gelagat ini, menjadikannya tidak konsisten merentas berbeza platform.
-
Pemberhentian penggunaan dalam HTML5: Spesifikasi HTML5 telah menyeragamkan tingkah laku ini, memanjangkannya kepada Firefox. Walau bagaimanapun, masih dianggap amalan buruk untuk bergantung pada elemen yang dinamakan yang boleh dilihat pada tetingkap atau sebagai global.
Sebaliknya, adalah lebih baik untuk menggunakan kaedah getElementById piawai untuk mendapatkan semula elemen daripada pepohon DOM, sebagai ia disokong secara meluas dan kurang samar-samar.
Atas ialah kandungan terperinci Mengapakah Mengakses Elemen DOM melalui Hartanah Global Tidak Digalakkan?. 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