Selecione os elementos que defini anteriormente com jquery.data();
ou seja, selecione todos os elementos .data('myAttr')
já definidos.
SOLUÇÃO
Um jsfiddle para demonstrar é Fiddle
javascript
jquery
jquery-selectors
Argiropoulos Stavros
fonte
fonte
$('[data-myAttr]')
A melhor e simples maneira de selecioná-los é:
Mais Informações:
Eu testei muitas coisas.
Usar
$('[data-myAttr!=""]')
não funciona para todos os casos. Porque os elementos que não possuem umdata-myAttr
conjunto, terão seusdata-myAttr
iguaisundefined
e$('[data-myAttr!=""]')
os selecionarão também, o que é incorreto.fonte
Você pode usar o filtro () :
fonte
$('[data-myAttr]')
?data()
o formulário getter de realmente lê osdata-
atributos HTML5 , mas seu formato setter não os cria nem os atualiza.Você pode usar esta extensão do jQuery Selector: Consultando dados do elemento
fonte
Você pode usar JQuery UI com o seletor: data ()
Verifique este jsfiddle para um exemplo
Para obter todos os elementos correspondentes,
.data('myAttr')
você pode usarIsso deve funcionar para elementos com
data-
atributos e elementos com dados armazenados usando$.data()
porqueMas isso não funciona muito bem. Verifique este jsfiddle e você verá que na segunda vez que o seletor é chamado, ele deve corresponder a 2 elementos e está correspondendo apenas a um. Isso se deve a "um bug" na biblioteca jquery-ui.
Isso é obtido do arquivo principal jquery-ui.
Como você pode ver que eles estão usando
$.data(elem, match)
, em vez$(elem).data(match)
que faz com que o cache não ser atualizado no caso de você está solicitando elementos comdata-
atributos. Se o elemento foi testado paradata()
armazenamento, isso funciona bem, mas se não, não será incluído nas correspondências resultantes.Isso pode não ser um bug se o que você quer é combinar apenas os elementos com as informações de dados definidas por você, mas se não, você tem duas opções.
Não use jquery-ui e estenda seu próprio pseudo-seletor
$(:mydata(myAttr))
Exibir trecho de código
Use jquery-ui com o
:data
pseudoselector e junte os resultados da seleção[data-myAttr]
para incluir aqueles que podem ser ignoradosExibir trecho de código
fonte
fonte
Tente utilizar
jQuery.data()
jsfiddle http://jsfiddle.net/xynZA/142/
fonte
html
data-*
conjunto de atributos, bem comojQuery.data()
conjunto?