J'essaye de sélectionner tous les éléments qui ont un data-go-to
attribut qui n'est pas vide.
J'ai essayé $('[data-go-to!=""]')
mais curieusement, il semble sélectionner chaque élément de la page si je fais cela.
Réponses:
essayer
$(':not([data-go-to=""])')
METTRE À JOUR:
Pour ne pas induire personne en erreur, cette réponse fonctionnera dans les anciennes versions de jQuery mais n'est pas à l'épreuve du temps. Étant donné que les réponses de @gmo et @ siva semblent fonctionner avec les versions ultérieures, je m'en remets à leurs réponses (et je vous encourage à voter pour) ... et j'espère bien sûr que vous passerez une journée fantastique.
$('element:not([attribute=])'); // gets all of <element attribute="">
ou$(':not([attribute=])'); // gets all of <* attribute="">
$('[data-go-to!=""]:[data-go-to]')
fait.
Juste comme référence supplémentaire, et une mise à jour (mai'14) (août'15) (sep'16) (avr'17) (mar'18) (mar'19) ( mai'20 ) ...
Réponse qui fonctionne avec:
Chaînes vides:
Si le doit exister et pourrait avoir une valeur (ou aucune valeur du tout)
attr
jQuery("[href]");
Attributs manquants:
Si pourrait exister et s'il existe, doit avoir une certaine valeur
attr
jQuery("[href!='']");
Ou les deux:
Si doit exister et doit avoir une certaine valeur ...
attr
jQuery("[href!=''][href]");
PS : plus de combinaisons sont possibles ...
jQuery v1.11.0 ->
jsFiddle online testjQuery v2.1.0 ->
jsFiddle online testjQuery v2.1.3 ->
jsFiddle online testjQuery v3.0.0-alpha1 ->
jsFiddle online testjQuery v3.1.1 Slim ->
jsFiddle online test jQuery v3.2.1 ->
jsFiddle online test jQuery v3.3.1 ->
jsFiddle online test jQuery v3.4.1 ->
jsFiddle online test Dernière version de jQuery disponible dans jsFiddle le 28 mai 2020 jQuery Edge ->
jsFiddle online test Version jQuery edge (à utiliser avec prudence) * L'extrait de code exécute jQuery v2.1.1
$(':not([data-go-to=""])')
ne fonctionne plus
$('[data-go-to!=""]:[data-go-to]').each(function() {
// Do Your Stuff
});
Unrecognized Expression
erreur.
A 'data-attributename' et sa valeur n'est pas vide:
$('[data-attributename]:not([data-attributename=""])')
A "data-attributename" vide ou non:
$('[data-attributename]')
Je ne suis pas sûr d'un sélecteur simple, mais vous pouvez utiliser filter()
:
$('[data-go-to]').filter(
function(){
return ($(this).attr('data-go-to').length > 0);
});
Références:
Essaye ça :
$('[data-go-to:not(:empty)]')
"Syntax error, unrecognized expression: [data-go-to:not(:empty)]"