ฉันต้องเลือกองค์ประกอบตามค่าที่เก็บไว้ใน.data()
วัตถุขององค์ประกอบ อย่างน้อยที่สุดฉันต้องการเลือกคุณสมบัติข้อมูลระดับสูงสุดโดยใช้ตัวเลือกอาจเป็นดังนี้:
$('a').data("category","music");
$('a:data(category=music)');
หรือบางทีตัวเลือกจะอยู่ในรูปแบบตัวเลือกแอตทริบิวต์ปกติ:
$('a[category=music]');
หรือในรูปแบบของแอตทริบิวต์ แต่มีตัวระบุเพื่อระบุว่าอยู่ใน.data()
:
$('a[:category=music]');
ฉันพบว่าการใช้งานของ James Padolseyดูเรียบง่าย แต่ก็ดี รูปแบบตัวเลือกด้านบนวิธีการมิเรอร์ที่แสดงในหน้านั้น นอกจากนี้ยังมีแพทช์ Sizzleนี้
ด้วยเหตุผลบางอย่างฉันจำได้ว่าได้อ่านมาพักหนึ่งแล้วว่า jQuery 1.4 จะรวมการสนับสนุน selector สำหรับค่าใน.data()
วัตถุjquery อย่างไรก็ตามตอนนี้ฉันกำลังหามันฉันไม่สามารถหามันได้ อาจเป็นเพียงคำขอคุณลักษณะที่ฉันเห็น มีการสนับสนุนสำหรับสิ่งนี้และฉันแค่ไม่เห็นมันใช่ไหม
โดยอุดมคติแล้วฉันต้องการสนับสนุนคุณสมบัติย่อยใน data () โดยใช้เครื่องหมายจุด แบบนี้:
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
ฉันยังต้องการสนับสนุนตัวเลือกข้อมูลหลายตัวที่พบเฉพาะองค์ประกอบที่มีตัวเลือกข้อมูลทั้งหมดที่ระบุเท่านั้น jquery หลายตัวเลือกปกติจะเป็นการดำเนินการหรือ ตัวอย่างเช่น$('a.big, a.small')
เลือกa
แท็กที่มีคลาสbig
หรือsmall
) ฉันกำลังมองหาและอาจเป็นเช่นนี้:
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
ท้ายสุดมันจะดีถ้าตัวดำเนินการเปรียบเทียบและคุณสมบัติ regex พร้อมใช้งานบนตัวเลือกข้อมูล ดังนั้น$(a[:artist.id>5000])
จะเป็นไปได้ ฉันรู้ว่าฉันอาจจะใช้สิ่งนี้ได้filter()
มาก แต่ก็ดีถ้ามีรูปแบบตัวเลือกที่เรียบง่าย
มีวิธีแก้ไขปัญหาอะไรให้ทำเช่นนี้ เวลานี้ Padolsey ของ Jame เป็นทางออกที่ดีที่สุดหรือไม่? ข้อกังวลของฉันนั้นเกี่ยวกับประสิทธิภาพเป็นหลัก แต่ก็รวมถึงคุณสมบัติพิเศษเช่นสัญกรณ์ดอทพร็อพเพอร์ตี้ย่อยและตัวเลือกข้อมูลหลายตัว มีการใช้งานอื่น ๆ ที่สนับสนุนสิ่งเหล่านี้หรือดีกว่าในบางวิธี?