有没有办法选择.data()附加的值?

时间:2010-12-14 18:11:15

标签: jquery

背景:我正在对现有的照片库插件进行升级,该插件在中央显示大图像,并逐渐将较小的图像移到任何一侧。

所以我的问题是:我在每个图像上设置了一些数据,这些数据给出了图像的索引,下一个图像的索引和上一个图像的索引,如下所示:

$(this).data('index', i).data('prev', i - 1).data('next', i + 1);

稍后,我希望能够根据索引选择图像。我尝试了以下内容,但它似乎不起作用:

$('[data-index=' + index + ']');

有没有办法根据.data()附加的数据选择元素?

2 个答案:

答案 0 :(得分:4)

您可以使用.filter(),如下所示:

$('*').filter(function() { return $.data(this, 'index') == index; })

但是,* 非常昂贵,因为它会对所有元素运行此过滤器,请使用更具体的选择器开始。

答案 1 :(得分:1)

略有替代方法:

假设图像是HTML中的一系列图片,为什么不这样做呢?

$('#images img').eq(index)