1

私は次の意図でjqueryを使用しています。

z-index が 100 未満の div を選択し、それらの div 内の img 要素をクラス blue div で囲みます。

jQuery(function($) {
$(".contentHolderUnit").each(function()
{
    if($(this).css("z-index") <  100)
    {

        $("img").wrap('<div class="blue" />');
        //$("img").css({"opacity": "0.75"});
    }
});

});

実際には、ページ上のすべての img 要素が選択され、何らかの理由で3 つのクラスの青い divで囲まれています。

対象の div の 1 つ: ( z-index は 100 で、フィルター処理されず、3 つの blue クラス div)

<div class="contentHolderUnit" rel="0" id="contentHolderUnit_0" style="display: block; height: 385px; width: 520px; left: 240px; top: 15px; z-index: 100; opacity: 1;"> <div class="blue"><div class="blue"><div class="blue"><img src="any" style="height: 385px; width: 520px; opacity: 0.75; display: inline-block;"></div></div></div><div class="car">
Example Title
</div></div>
4

2 に答える 2

3

z-index などの要素内の画像だけでなく、各反復で DOM 内のすべての画像を選択しています。ループの代わりにフィルターと find() を使用するだけです。

jQuery(function($) {
    $(".contentHolderUnit").filter(function(i, el) {
        return el.style.zIndex < 100;
    }).find('img').wrap('<div class="blue" />')
                  .css({opacity: 0.75});
});
于 2013-05-13T15:08:56.207 に答える
2

$("img")セレクターがページ上のすべての画像を選択しているためです。次のように、親内で選択する必要があります。

$(this).children("img");
于 2013-05-13T15:08:41.707 に答える