Rumah >hujung hadapan web >tutorial css >Bolehkah Berbilang Elemen HTML Berkongsi ID yang Sama, dan Apakah Akibatnya?

Bolehkah Berbilang Elemen HTML Berkongsi ID yang Sama, dan Apakah Akibatnya?

Barbara Streisand
Barbara Streisandasal
2024-12-25 06:18:16391semak imbas

Can Multiple HTML Elements Share the Same ID, and What Are the Consequences?

Bolehkah Berbilang Elemen Berkongsi Pemilih ID Yang Sama?

Walaupun garis panduan yang jelas daripada W3C menyatakan bahawa atribut ID mestilah unik, penyemak imbas sering mempamerkan tingkah laku yang berbeza apabila menemui ID pendua.

Contoh yang diberikan menggambarkan ini percanggahan, di mana dua elemen dengan ID yang sama bertindak balas kepada pemilih CSS. Ini disebabkan terutamanya oleh kecenderungan penyemak imbas untuk "gagal secara senyap" dan cuba mentafsir niat pembangun, walaupun apabila ia melanggar piawaian HTML.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menyimpang daripada spesifikasi boleh membawa kepada akibat yang tidak dijangka :

  • document.getElementById('red') hanya akan kembali elemen pertama dengan ID tersebut.
  • Isu keserasian merentas penyemak imbas mungkin timbul kerana pelaksanaan penyemak imbas berbeza-beza.

Cadangan:

Untuk optimum keputusan, adalah sangat tidak digalakkan untuk memberikan ID pendua kepada elemen. Sebaliknya, gunakan nama kelas untuk menyasarkan berbilang elemen dengan gaya CSS yang sama. Kelas direka bentuk secara eksplisit untuk tujuan ini.

Pendekatan Alternatif untuk Pemilihan Berbilang ID:

Jika benar-benar perlu, pemilih atribut boleh digunakan untuk memilih berbilang elemen dengan ID yang sama :

document.querySelectorAll('p[id="red"]');

Walau bagaimanapun, pendekatan ini tidak disokong dalam IE7 dan ke bawah.

Atas ialah kandungan terperinci Bolehkah Berbilang Elemen HTML Berkongsi ID yang Sama, dan Apakah Akibatnya?. 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