javascript - 在每个函数中向元素添加数据

标签 javascript jquery html

我创建了一个 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/

相关文章:

javascript - 如何制作一个使用自定义资源并链接到另一个页面的按钮

javascript - 如何在 React-native WebView 中捕获 form.submit 的响应

javascript - 有没有办法强制用户滚动到 div 的底部?

jquery - 将鼠标悬停在 Google map 中的自定义叠加层上

html - Powershell 脚本转换为 html 并根据数字阈值更改字体/单元格颜色

javascript - 如何使用 JavaScript 手动将列​​插入到 HTML 表中?

javascript - 正则表达式和数组 : Most efficient approach

javascript - MVC 5 - 将下拉选项设置为在文档准备好时选择后,为什么会重置?

css - 如何根据子DIV中的内容自动调整父DIV的高度?

html - 是否支持 HTML5