Tôi cần chọn các phần tử dựa trên các giá trị được lưu trữ trong .data()
đối tượng của phần tử . Tối thiểu, tôi muốn chọn các thuộc tính dữ liệu cấp cao nhất bằng cách sử dụng các bộ chọn, có lẽ như thế này:
$('a').data("category","music");
$('a:data(category=music)');
Hoặc có lẽ bộ chọn sẽ ở định dạng bộ chọn thuộc tính thông thường:
$('a[category=music]');
Hoặc ở định dạng thuộc tính, nhưng với một chỉ định để chỉ ra nó ở trong .data()
:
$('a[:category=music]');
Tôi đã tìm thấy triển khai của James Padolsey trông đơn giản nhưng tốt. Các định dạng chọn trên các phương thức nhân bản được hiển thị trên trang đó. Ngoài ra còn có bản vá Sizzle này .
Vì một số lý do, tôi nhớ lại việc đọc một thời gian trước rằng jQuery 1.4 sẽ bao gồm hỗ trợ cho các bộ chọn trên các giá trị trong .data()
đối tượng jquery . Tuy nhiên, bây giờ khi tôi đang tìm kiếm nó, tôi không thể tìm thấy nó. Có lẽ nó chỉ là một yêu cầu tính năng mà tôi thấy. Có hỗ trợ cho điều này và tôi chỉ không nhìn thấy nó?
Lý tưởng nhất, tôi muốn hỗ trợ các thuộc tính phụ trong dữ liệu () bằng cách sử dụng ký hiệu dấu chấm. Như thế này:
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
Tôi cũng muốn hỗ trợ nhiều bộ chọn dữ liệu, trong đó chỉ các phần tử có TẤT CẢ các bộ chọn dữ liệu được chỉ định được tìm thấy. Nhiều bộ chọn jquery thông thường thực hiện thao tác OR. Chẳng hạn, $('a.big, a.small')
chọn a
các thẻ với một trong hai lớp big
hoặc small
). Tôi đang tìm kiếm một AND, có lẽ như thế này:
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
Cuối cùng, sẽ thật tuyệt nếu các toán tử so sánh và các tính năng regex có sẵn trên các bộ chọn dữ liệu. Vì vậy, $(a[:artist.id>5000])
sẽ có thể. Tôi nhận ra rằng tôi có thể có thể làm nhiều việc này bằng cách sử dụng filter()
, nhưng thật tuyệt khi có một định dạng chọn đơn giản.
Những giải pháp có sẵn để làm điều này? Jame's Padolsey có phải là giải pháp tốt nhất vào lúc này không? Mối quan tâm của tôi chủ yếu liên quan đến hiệu suất, mà còn ở các tính năng bổ sung như ký hiệu chấm thuộc tính phụ và nhiều bộ chọn dữ liệu. Có những triển khai khác hỗ trợ những điều này hoặc tốt hơn theo một cách nào đó?