2013-05-13 84 views
1

我正在使用jQuery,具有以下意图。过滤问题

我选择了z-index低于100的div,然后用类blue div将这些div中的img元素包围起来。

真的会发生什么事是,每个页面上的 img元素被选中,出于某种原因被类蓝色的div包围。

目标的div之一: (Z-指数为100,并没有被过滤掉,3周蓝色类的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> 
+0

'$(“img”)''将包装所有'img'标签。应该是'$(this)'。 – Omar 2013-05-13 15:09:57

回答

3

你在每次迭代选择在DOM中的所有图像,而不是仅仅与z-index的元素里面的人等我只是用过滤器和find()代替循环:

jQuery(function($) { 
    $(".contentHolderUnit").filter(function(i, el) { 
     return el.style.zIndex < 100; 
    }).find('img').wrap('<div class="blue" />') 
        .css({opacity: 0.75}); 
}); 
+0

救命恩答案!非常感谢! – Pedro 2013-05-13 19:06:44

2

因为你$("img")选择器选择页面上的每个图像。您需要家长像这里面的选择:

$(this).children("img");