मुझे किसी तत्व के .data()
ऑब्जेक्ट में संग्रहीत मूल्यों के आधार पर तत्वों का चयन करने की आवश्यकता है । कम से कम, मैं चयनकर्ताओं का उपयोग करके शीर्ष-स्तरीय डेटा गुणों का चयन करना चाहूंगा, शायद इस तरह:
$('a').data("category","music");
$('a:data(category=music)');
या शायद चयनकर्ता नियमित विशेषता चयनकर्ता प्रारूप में होगा:
$('a[category=music]');
या विशेषता प्रारूप में, लेकिन यह निर्दिष्ट करने के लिए एक विशेष के साथ .data()
:
$('a[:category=music]');
मुझे जेम्स पडोल्सी का कार्यान्वयन सरल, अभी तक अच्छा दिखने के लिए मिला है । उस पृष्ठ पर दिखाए गए दर्पण विधियों के ऊपर चयनकर्ता प्रारूप। यह Sizzle पैच भी है ।
किसी कारण से, मुझे कुछ समय पहले पढ़ने की याद है कि jQuery 1.4 में jquery .data()
वस्तु में मूल्यों पर चयनकर्ताओं के लिए समर्थन शामिल होगा । हालाँकि, अब जब मैं इसकी तलाश कर रहा हूं, तो मैं इसे नहीं पा सकता। शायद यह केवल एक सुविधा अनुरोध था जो मैंने देखा था। क्या इसके लिए समर्थन है और मैं इसे नहीं देख रहा हूं?
आदर्श रूप में, मैं डॉट नोटेशन का उपयोग करके डेटा में उप-संपत्तियों () का समर्थन करना चाहूंगा। ऐशे ही:
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
मैं कई डेटा चयनकर्ताओं का समर्थन करना चाहूंगा, जहां सभी निर्दिष्ट डेटा चयनकर्ताओं के साथ केवल तत्व पाए जाते हैं। नियमित jquery कई चयनकर्ता एक OR ऑपरेशन करता है। उदाहरण के लिए, वर्ग या ) के साथ टैग $('a.big, a.small')
का चयन करता है । मैं एक के लिए देख रहा हूँ, शायद इस तरह:a
big
small
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
अंत में, यह बहुत अच्छा होगा यदि तुलना ऑपरेटर और रेगेक्स सुविधाएँ डेटा चयनकर्ताओं पर उपलब्ध थीं। तो $(a[:artist.id>5000])
संभव होगा। मुझे लगता है कि मैं शायद इस का उपयोग कर सकता है filter()
, लेकिन एक सरल चयनकर्ता प्रारूप होना अच्छा होगा।
ऐसा करने के लिए क्या समाधान उपलब्ध हैं? क्या इस समय जेम का पडोलसी सबसे अच्छा समाधान है? मेरी चिंता मुख्य रूप से प्रदर्शन के संबंध में है, लेकिन उप-संपत्ति डॉट-नोटेशन और कई डेटा चयनकर्ताओं जैसी अतिरिक्त सुविधाओं में भी। क्या अन्य कार्यान्वयन हैं जो इन चीजों का समर्थन करते हैं या किसी तरह से बेहतर हैं?