5

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;

        }                   

    });
4

1 に答える 1

16

これにより、データがjQuery独自のデータキャッシュに設定されます。

$this.data('count', numImages);

data-要素の属性には設定されません。data-その目的はサーバーからクライアントにデータを転送することであるため、通常、クライアントに属性を設定する必要はありません。

それでも、設定したい場合は、

$this.attr('data-count', numImages)

また

this.setAttribute('data-count', numImages)

個人的には、少量のデータを要素に関連付けたい場合は、要素自体にプロパティとして直接保存します。

this.count = numImages;

プリミティブデータの場合、無害です。より大きなオブジェクトやその他のDOM要素については、私はもっと躊躇します。

于 2013-02-20T22:59:09.047 に答える