我创建了一个 each 函数来计算 div 内的图像数量,我试图将 div 内计算的图像数量设置为 div 的数据属性,但它不起作用。
我是否以错误的方式解决了这个问题,因为它似乎不起作用?
这是网站 http://www.touchmarketing.co.nz/test/
var mostImages = 0;
numSliders = $wowSlides.length,
lastVindex = numSliders-1;
$wowSlides.each(function(){
var $this = $(this),
$images = $this.find('img'),
numImages = $images.length;
$images.css({width:$slideWidth, 'float':'left', 'position':'relative'}).wrapAll('<div class="slider" />');
$slider = $this.find(".slider");
$slider.width($slideWidth*numImages).css({'float':'left'});
$this.data('count', numImages); // add data-count="insert number here" to this .wowSlides div
console.log(numImages);
if(numImages > mostImages){
mostImages = numImages;
}
});
最佳答案
这会将数据设置到 jQuery 的专有数据缓存中:
$this.data('count', numImages);
它没有设置为元素的 data-
属性。通常不需要在客户端设置 data-
属性,因为它的目的是将数据从服务器传输到客户端。
不过,如果你想设置它,使用
$this.attr('data-count', numImages)
或
this.setAttribute('data-count', numImages)
就个人而言,如果我想将少量数据与元素相关联,我会直接将其作为属性存储在元素本身上。
this.count = numImages;
对于原始数据,它是无害的。对于较大的对象或其他 DOM 元素,我会更加犹豫。
关于javascript - 在每个函数中向元素添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991510/