seletor de dados jquery

Preciso selecionar elementos com base nos valores armazenados em um elemento.data() objeto. No mínimo, gostaria de selecionar propriedades de dados de nível superior usando seletores, talvez assim:

$('a').data("category","music");
$('a:data(category=music)');

Ou talvez o seletor esteja no formato regular de seletor de atributos:

$('a[category=music]');

Ou no formato de atributo, mas com um especificador para indicar que está em.data():

$('a[:category=music]');

encontreiImplementação de James Padolsey parecer simples, mas bom. O seletor formata os métodos de espelhamento mostrados nessa página. Há também issoSizzle patch.

Por alguma razão, lembro-me de ler um tempo atrás que o jQuery 1.4 incluiria suporte para seletores de valores no jquery.data() objeto. No entanto, agora que estou procurando, não consigo encontrá-lo. Talvez tenha sido apenas uma solicitação de recurso que eu vi. Existe suporte para isso e eu simplesmente não estou vendo?

Idealmente, eu gostaria de oferecer suporte a subpropriedades em data () usando a notação de ponto. Como isso:

$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');

Também gostaria de oferecer suporte a vários seletores de dados, onde apenas elementos com TODOS os seletores de dados especificados são encontrados. O seletor múltiplo jquery regular faz uma operação OR. Por exemplo,$('a.big, a.small') Selecione% sa tags com qualquer classebig ousmall) Estou procurando um AND, talvez assim:

$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');

Por fim, seria ótimo se operadores de comparação e recursos de regex estivessem disponíveis nos seletores de dados. assim$(a[:artist.id>5000]) seria possível. Sei que provavelmente poderia fazer muito disso usandofilter(), mas seria bom ter um formato de seletor simples.

Quais soluções estão disponíveis para fazer isso? O Padolsey de Jame é a melhor solução no momento? Minha preocupação é principalmente em relação ao desempenho, mas também nos recursos extras, como notação de ponto de subpropriedade e vários seletores de dados. Existem outras implementações que suportam essas coisas ou são melhores de alguma forma?

questionAnswers(9)

yourAnswerToTheQuestion