2013-05-13 114 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");