Anda bertanya "seberapa buruk". Jadi untuk menyempurnakan jawabannya (sepenuhnya akurat) @ RobertKoritnik ...
Kode itu salah. Salah tidak datang dalam nuansa abu-abu. Kode ini melanggar standar dan karenanya salah. Ini akan gagal memeriksa validasi, dan seharusnya.
Yang mengatakan, tidak ada browser saat ini di pasaran akan mengeluh tentang hal itu, atau punya masalah sama sekali. Peramban berhak untuk mengeluh tentang hal itu, tetapi tidak ada versi saat ini dari mereka yang melakukannya. Yang tidak berarti versi yang akan datang mungkin tidak memperlakukan kode ini dengan buruk.
Perilaku Anda yang mencoba menggunakan ID itu sebagai pemilih, baik dalam css atau javascript, tidak dapat diabaikan dan mungkin bervariasi dari browser ke browser. Saya kira suatu penelitian dapat dilakukan untuk melihat bagaimana masing-masing browser bereaksi terhadap hal itu. Saya pikir dalam kasus terbaik, itu akan memperlakukannya seperti "class =", dan pilih daftar mereka. (Namun, itu mungkin membingungkan perpustakaan JavaScript - jika saya adalah penulis jQuery, saya mungkin telah mengoptimalkan kode pemilih saya sehingga jika Anda datang kepada saya dengan pemilih yang dimulai dengan "#", saya mengharapkan satu objek, dan mendapatkan daftar mungkin membuat saya benar-benar bork.)
Mungkin juga memilih yang pertama, atau mungkin yang terakhir, atau tidak memilih salah satu dari mereka, atau crash browser sepenuhnya. Tidak ada cara untuk mengatakannya tanpa mencobanya.
"Seberapa buruk" bergantung sepenuhnya pada seberapa ketat browser tertentu mengimplementasikan spesifikasi HTML, dan apa yang dilakukannya ketika dihadapkan dengan pelanggaran terhadap spesifikasi itu.
EDIT: SAYA HANYA kebetulan menemukan ini hari ini. Saya menarik berbagai komponen dari formulir pencarian pada berbagai jenis entitas untuk menghasilkan utilitas pelaporan lengkap all-in-one yang besar untuk situs ini, saya memuat formulir pencarian halaman jauh dalam div tersembunyi dan memasukkannya ke dalam pembuat laporan ketika tipe entitas yang sesuai dipilih sebagai sumber untuk laporan. Jadi ada versi tersembunyi formulir, dan versi yang ditampilkan di pembuat laporan. JavaScript yang datang dengan, dalam semua kasus, mengacu pada elemen dengan ID, yang sekarang ada DUA di halaman - yang tersembunyi, dan yang ditampilkan.
Apa yang tampaknya dilakukan jQuery adalah memilih saya yang PERTAMA, yang dalam semua kasus persis yang saya TIDAK inginkan.
Saya sedang mengerjakan ini dengan menulis penyeleksi untuk menentukan wilayah halaman yang saya inginkan untuk mendapatkan bidang saya (yaitu: $ ('# containerDiv #specificElement')). Tapi ada satu jawaban untuk pertanyaan Anda - jQuery on Chrome pasti berperilaku dengan cara tertentu ketika dihadapkan dengan pelanggaran spesifikasi ini.