Saya mengerti bahwa id harus unik dalam halaman HTML / XHTML.
Pertanyaan saya adalah, untuk elemen tertentu, dapatkah saya menetapkan beberapa id?
<div id="nested_element_123 task_123"></div>
Saya menyadari bahwa saya memiliki solusi yang mudah dengan hanya menggunakan kelas. Saya hanya ingin tahu tentang menggunakan id dengan cara ini.
html
xhtml
standards-compliance
webmat
sumber
sumber
Jawaban:
Tidak. Dari XHTML 1.0 Spec
sumber
Bertentangan dengan apa yang orang lain katakan, jawaban yang benar adalah YA
Spesifikasi Selectors sangat jelas tentang ini:
Edit
Hanya untuk memperjelas: Ya, elemen XHTML dapat memiliki beberapa id, mis
tetapi menetapkan beberapa id ke
id
atribut yang sama menggunakan daftar yang dipisahkan ruang tidak mungkin.sumber
This specification doesn't preclude an element having multiple IDs, if other mechanisms (e.g. DOM Core methods) can set an element's ID in a way that doesn't conflict with the id attribute.
(yang sesuai dengan spesifikasi CSS)id
atribut. Untuk memperjelas,xml:id
atribut (dan pada kenyataannya, atribut apa pun di luar namespace default) tidak valid dalam XHTML. Namun ketika Anda mengutip dari spesifikasi HTML5, ini tidak akan menyebabkanxml:id="bar"
kegagalan; masih akan menambahkanbar
ID ke elemen ini, memungkinkannya cocok#bar
.Pemahaman saya selalu:
ID adalah penggunaan tunggal dan hanya diterapkan pada satu elemen ...
Kelas dapat digunakan lebih dari sekali ...
sumber
Tidak. Meskipun definisi dari w3c untuk HTML 4 tampaknya tidak secara eksplisit mencakup pertanyaan Anda, definisi atribut nama dan id mengatakan tidak ada spasi di pengidentifikasi:
sumber
Tidak. Setiap elemen DOM, jika memiliki id, memiliki id tunggal dan unik. Anda dapat memperkirakannya menggunakan sesuatu seperti:
dan kemudian gunakan navigasi untuk mendapatkan apa yang Anda inginkan.
Jika Anda hanya ingin menerapkan gaya, nama kelas lebih baik.
sumber
Anda hanya dapat memiliki satu ID per elemen, tetapi Anda memang dapat memiliki lebih dari satu kelas. Tetapi tidak memiliki beberapa atribut kelas, masukkan beberapa nilai kelas ke dalam satu atribut.
sangat legal.
sumber
Tidak, Anda tidak dapat memiliki beberapa id untuk satu tag, tetapi saya telah melihat tag dengan
name
atribut danid
atribut yang diperlakukan sama oleh beberapa aplikasi.sumber
Tidak, Anda harus menggunakan DIV bersarang jika Anda ingin menuju jalan itu. Selain itu, bahkan jika Anda bisa, bayangkan kebingungan yang akan terjadi ketika Anda menjalankan document.getElementByID (). ID apa yang akan diambil jika ada beberapa?
Pada topik yang sedikit terkait, Anda dapat menambahkan beberapa kelas ke DIV. Lihat diskusi Eric Myers di,
http://meyerweb.com/eric/articles/webrev/199802a.html
sumber
getElementById();
tidak melakukan apa-apa tanpa string yang menentukan apa yang akan didapat ?!getElementById('foo');
akan mendapatkan elemen dengan foo sebagai ID! Beberapa ID tidak masalah di sini. Itu masih akan mencari "foo".sumber
http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2
dan
Jadi "id" harus unik dan tidak boleh berisi spasi.
sumber
Saya ingin mengatakan secara teknis ya, karena benar-benar apa yang diberikan secara teknis selalu bergantung pada browser. Sebagian besar browser mencoba untuk menjaga spesifikasi sebaik mungkin dan sejauh yang saya tahu tidak ada spesifikasi dalam css yang menentangnya. Saya hanya akan menjamin kode html, css, javascript aktual yang dikirim ke browser sebelum langkah penerjemah lain masuk.
Namun saya juga mengatakan tidak karena setiap browser yang biasanya saya uji tidak benar-benar membiarkan Anda. Jika Anda perlu melihat sendiri simpan yang berikut ini sebagai file .html dan buka di browser utama. Di semua browser yang saya uji pada fungsi javascript tidak akan cocok dengan elemen. Namun, hapus "hunkojunk" dari tag id dan semua berfungsi dengan baik. Kode sampel
sumber
Tidak.
Karena itu, tidak ada yang bisa menghentikan Anda melakukannya. Tetapi Anda akan mendapatkan perilaku yang tidak konsisten dengan berbagai browser. Jangan lakukan itu. 1 ID per elemen.
Jika Anda ingin beberapa tugas ke elemen gunakan kelas (dipisahkan oleh spasi).
sumber
Itu menarik, tetapi sejauh yang saya tahu jawabannya adalah perusahaan tidak. Saya tidak mengerti mengapa Anda memerlukan ID bersarang, karena Anda biasanya akan melewatinya dengan elemen lain yang memiliki ID bersarang yang sama. Jika Anda tidak ada gunanya, jika Anda melakukannya masih ada gunanya.
sumber
Saya tahu ini berumur satu tahun tetapi saya ingin tahu tentang hal ini sendiri dan saya yakin orang lain akan menemukan jalan mereka di sini. Jawaban sederhananya adalah tidak, seperti yang dikatakan orang lain sebelum saya. Suatu elemen tidak dapat memiliki lebih dari satu ID dan ID tidak dapat digunakan lebih dari sekali dalam satu halaman. Cobalah dan Anda akan melihat seberapa baik itu tidak berhasil.
Sebagai tanggapan atas jawaban tvanfosson mengenai penggunaan ID yang sama dalam dua elemen yang berbeda. Sejauh yang saya ketahui, ID hanya dapat digunakan sekali dalam satu halaman terlepas dari apakah itu dilampirkan pada tag yang berbeda.
Menurut definisi, elemen yang membutuhkan ID harus unik tetapi jika Anda membutuhkan dua ID maka itu tidak benar-benar unik dan membutuhkan kelas.
sumber
kelas dibuat khusus untuk ini, di sini adalah kode yang dapat Anda pahami
sumber
Bahkan.
https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute
id="a b"
<- temukan karakter spasi di VaLuE itu .Karena itu, Anda dapat mendesain banyak ID. Tetapi jika Anda mengikuti spec, jawabannya adalah tidak.
sumber
ID harus unik, jadi Anda hanya boleh menggunakan ID tertentu satu kali pada halaman. Kelas dapat digunakan berulang kali.
periksa https://www.w3schools.com/html/html_id.asp untuk detail lebih lanjut.
sumber
Saya tidak berpikir Anda dapat memiliki dua Id tetapi itu harus mungkin. Menggunakan id yang sama dua kali adalah kasus yang berbeda ... seperti dua orang menggunakan paspor yang sama. Namun satu orang dapat memiliki beberapa paspor ... Datang mencari ini karena saya memiliki situasi di mana seorang karyawan dapat memiliki beberapa fungsi. Katakan "sysadm" dan "koordinator tim" yang memiliki id = "sysadm teamcoordinator" akan membiarkan saya mereferensikannya dari halaman lain sehingga employee.html # sysadm dan employee.html # teamcoordinator akan mengarah ke tempat yang sama ... Suatu hari seseorang lain mungkin mengambil alih fungsi koordinator tim sementara sysadm tetap menjadi sysadm ... maka saya hanya perlu mengubah id pada halaman karyawan.html ... tapi seperti yang saya katakan - itu tidak bekerja :(
sumber