我需要在数组中添加所有数据属性
$('.lightbox-trigger').click(function (e) {
e.preventDefault();
e.stopPropagation();
var image_src_arr = $('.lightbox-trigger').data('img-src');
console.log(image_src_arr);
});
http://jsfiddle.net/v7E5g/2/
但我只获得数据属性的第一个元素
怎么了?我怎样才能使它发挥作用?
答案 0 :(得分:3)
当您使用.map()作为getter时,可以使用.data(),然后它将从调用对象集中的第一个对象返回值
$('.lightbox-trigger').click(function (e) {
e.preventDefault();
e.stopPropagation();
var image_src_arr = $('.lightbox-trigger').map(function () {
return $(this).data('img-src');
}).get()
console.log(image_src_arr);
});
演示:Fiddle
答案 1 :(得分:2)
您需要使用$(this)
定位当前点击的div lightbox-trigger
:
var image_src_arr = $(this).data('img-src');
<强> Updated Fiddle 强>
如果要检索src
属性数组,则可以使用.map()
:
var image_src_arr = $('.lightbox-trigger').map(function () {
return $(this).data('img-src');
}).get();
<强> Updated Fiddle 强>