2013-07-25 41 views
1

我正在使用這個IE7 z-index修復器,它正在搞亂一些特定的元素。選擇所有div但不是嵌套在特定div中的那些

我想要做的是選擇所有的divs,但不是嵌套在特定的div。

這是我目前正在使用的jQuery代碼,這是不按預期工作。

<script type="text/javascript"> 
    $(function() { 
     var zIndexNumber = 1000; 
     $('div').not('.filter_list_1_container > div').each(function() { 
      $(this).css('zIndex', zIndexNumber); 
      zIndexNumber -= 10; 
     }); 
    }); 
</script> 

由於某種原因,它只會忽略第一層。如果嵌套的div包含div,jQuery代碼不會忽略它們...

如何忽略「.filter_list_1_container」類中的所有div?

+0

那是因爲你特別忽視.filter_list_1_containe的直接子div的,這聽起來可能很傻,但你可以刪除「>」 symbot與剛'.filter_list_1_container嘗試div' – rps

回答

3

您可能需要後代insted的直接子,所以從選擇器刪除>

變化

.not('.filter_list_1_container > div') 

。不是( 'filter_list_1_container DIV')

您的代碼會。

$(function() { 
    var zIndexNumber = 1000; 
    $('div').not('.filter_list_1_container div').each(function() { 
     $(this).css('zIndex', zIndexNumber); 
     zIndexNumber -= 10; 
    }); 
}); 
+0

完美!按預期工作! – dasmikko

0

你在你的選擇,這意味着它只會選擇元素的直接孩子使用>。如果你刪除它,然後它會忽略的.filter_list_1_container任何後代是div元素

這將做到這一點:

<script type="text/javascript"> 
    $(function() { 
     var zIndexNumber = 1000; 
     $('div').not('.filter_list_1_container div').each(function() { 
      $(this).css('zIndex', zIndexNumber); 
      zIndexNumber -= 10; 
     }); 
    }); 
</script> 
0

嗯,你的問題是「>」運算符選擇所有直接子女。所以在以下情況下。

.filter_list_1_container | div | div

它只會排除第一組div並顯示第二個div。

嘗試刪除「>」操作