Saya perlu memilih elemen berdasarkan nilai yang disimpan dalam objek elemen .data()
. Minimal, saya ingin memilih properti data tingkat atas menggunakan penyeleksi, mungkin seperti ini:
$('a').data("category","music");
$('a:data(category=music)');
Atau mungkin pemilih akan berada dalam format pemilih atribut biasa:
$('a[category=music]');
Atau dalam format atribut, tetapi dengan specifier untuk menunjukkannya ada di .data()
:
$('a[:category=music]');
Saya menemukan implementasi James Padolsey terlihat sederhana, namun bagus. Format pemilih di atas metode mirror ditunjukkan pada halaman itu. Ada juga patch Sizzle ini .
Untuk beberapa alasan, saya ingat pernah membaca beberapa waktu lalu bahwa jQuery 1.4 akan menyertakan dukungan untuk penyeleksi pada nilai-nilai dalam .data()
objek jquery . Namun, sekarang saya sedang mencarinya, saya tidak dapat menemukannya. Mungkin itu hanya permintaan fitur yang saya lihat. Apakah ada dukungan untuk ini dan saya tidak melihatnya?
Idealnya, saya ingin mendukung sub-properti dalam data () menggunakan notasi titik. Seperti ini:
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
Saya juga ingin mendukung beberapa penyeleksi data, di mana hanya elemen dengan SEMUA pemilih data yang ditentukan yang ditemukan. Pemilih berganda jquery biasa melakukan operasi ATAU. Misalnya, $('a.big, a.small')
pilih a
tag dengan kelas big
atau small
). Saya mencari DAN, mungkin seperti ini:
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
Terakhir, akan lebih bagus jika operator perbandingan dan fitur regex tersedia pada pemilih data. Jadi $(a[:artist.id>5000])
mungkin saja. Saya menyadari saya mungkin bisa melakukan banyak hal menggunakan ini filter()
, tetapi akan menyenangkan untuk memiliki format pemilih yang sederhana.
Solusi apa yang tersedia untuk melakukan ini? Apakah Jame's Padolsey adalah solusi terbaik saat ini? Perhatian saya terutama dalam hal kinerja, tetapi juga dalam fitur tambahan seperti notasi titik sub-properti dan beberapa pemilih data. Apakah ada implementasi lain yang mendukung hal-hal ini atau lebih baik dalam beberapa hal?