Contexte: J'effectue une mise à niveau sur un plug-in de galerie photo existant qui affiche une grande image au centre et des images de plus en plus petites de chaque côté.Existe-t-il un moyen de sélectionner une valeur attachée par .data()?
Alors ma question est la suivante: je mise des données sur chaque image qui donne l'index de l'image, l'index de l'image suivante, et l'indice de l'image précédente, comme ceci:
$(this).data('index', i).data('prev', i - 1).data('next', i + 1);
Plus tard, j'aimerais pouvoir sélectionner une image basée sur son index. J'ai essayé ce qui suit, mais il ne semble pas fonctionner:
$('[data-index=' + index + ']');
Est-il possible de sélectionner un élément basé sur un morceau de données attaché avec .data()
?
Sweet! Alors quelque chose comme '$ ('img'). Filter (fonction() {return $ .data (this, 'index') == index;})' devrait fonctionner, et être plus efficace que d'utiliser '*'. – Ender
S'il y a beaucoup d'éléments sur la page, alors oui, ridiculement inefficace. jQuery doit passer au crible tous les éléments de la page et tester chacun de ces éléments. Si vous rétrécissez le sélecteur comme il l'a dit, c'est ok. – simshaun
@Ender - yup, exactement. Si vous avez * beaucoup * d'éléments, il y a en réalité une façon complètement inverse de s'y prendre, mais essayez d'abord, car c'est beaucoup plus simple et plus facile à comprendre. –