Apakah ada yang tahu cara memilih item di DOM dengan ID dengan jQuery, ketika ID itu memiliki spasi?
Misalnya, ID barang saya akan
<div id="content Module">Stuff</div>
Bagaimana saya memilih ini dengan jQuery?
Jika saya lakukan
$("#content Module").whatever()
jQuery akan mencoba menemukan item dengan ID konten dan ID Modul, yang bukan yang saya cari.
Saya harus menambahkan bahwa saya bekerja dengan basis kode lama di mana dua kata id ini digunakan secara luas, jadi melalui dan mengubah semua ID akan menjadi buruk.
Jawaban:
Gunakan pemilih atribut.
Atau, lebih baik, tentukan tag juga:
Perhatikan bahwa tidak seperti $ ('# id'), ini akan mengembalikan beberapa elemen jika Anda memiliki beberapa elemen dengan id yang sama di dalam halaman Anda.
sumber
Jangan gunakan spasi, alasannya sederhana, karakter spasi bukan valid untuk atribut ID.
Tetapi jika Anda tidak peduli dengan standar coba
$("[id='content Module']")
Utas serupa> Apa nilai yang valid untuk atribut id dalam HTML?
Sunting: Perbedaan id antara HTML 4.01 dan HTML5
Tautan: http://mathiasbynens.be/notes/html5-id-class
sumber
Kalau-kalau ada yang ingin tahu, saya menemukan bahwa melarikan diri ruang akan berhasil. Ini sangat berguna ketika Anda tidak memiliki kendali atas DOM target (misalnya dari dalam skrip pengguna):
Perhatikan double-backslash, yang diperlukan.
sumber
Metode yang disarankan Chris kemungkinan dapat disesuaikan untuk bekerja dengan fungsi jQuery.
sumber
Sebuah ide untuk dicoba:
Tanda titik koma dapat menyebabkan kesalahan javascript. Saya juga merekomendasikan untuk mengubah ID agar tidak memiliki spasi.
Juga coba
document.getElementByID("content Module")
sumber
$(document.getElementByID("content Module"))
memberi Anda objek jquery?Ini berhasil untuk saya.
sumber
Meskipun secara teknis tidak valid memiliki ruang dalam nilai atribut ID dalam HTML , Anda sebenarnya dapat memilihnya menggunakan jQuery.
Lihat http://mothereffingcssescapes.com/#content%20module :
jQuery menggunakan sintaks seperti Selectors API, sehingga Anda bisa menggunakan
$('#content\\ module');
untuk memilih elemen denganid="content module"
.Untuk menargetkan elemen dalam CSS, Anda dapat menghindarinya seperti ini:
sumber
ini bisa berfungsi jika Anda ingin elemen memiliki nilai tepat untuk id
tetapi jika Anda ingin memeriksa apakah elemen hanya memiliki salah satunya (seperti kelas) dengan atau tanpa id lainnya
ini akan memilih elemen jika memiliki
id="content"
atauid="content Module"
atauid="content Module other_ids"
sumber
Saya menemukan kasus saya bahwa melarikan diri tidak berfungsi karena ia mengganti ruang dengan% 20. Saya menggunakan ganti sebagai gantinya untuk mengganti h1 halaman dengan teks dari item daftar. Jika menu berisi:
sumber
Saya mengalami masalah dengan id elemen yang mengandung koma dan / atau spasi di jQuery, jadi saya melakukan ini dan itu berfungsi seperti pesona:
var ele = $(document.getElementById('last, first'));
Ini memiliki ruang dan tidak berfungsi:
var ele = $('#last, first');
Ini memiliki koma dan tidak berfungsi:
var ele = $('#last,first');
sumber
Meloloskan setiap karakter misc pada pemilih (bersama dengan spasi) .
sumber