1

我正在使用这个 IE7 z-index 修复程序,它弄乱了一些特定的元素。

我想要做的是选择所有 div,但不是嵌套在特定 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?

4

3 回答 3

3

您可能需要直接子代的后代,因此请>从选择器中删除。

改变

.not('.filter_list_1_container > div')

.not('.filter_list_1_container div')

你的代码是。

$(function() {
    var zIndexNumber = 1000;
    $('div').not('.filter_list_1_container div').each(function() {
        $(this).css('zIndex', zIndexNumber);
        zIndexNumber -= 10;
    });
});
于 2013-07-25T11:55:05.133 回答
0

那么您的问题是“>”运算符正在选择所有直接子级。所以在以下情况下..

.filter_list_1_container | div | div

它只会排除第一组 div 并显示第二组。

尝试删除“>”运算符

于 2013-07-25T11:57:39.907 回答
0

>在选择器中使用,这意味着它只会选择该元素的直接子元素。如果您删除它,那么它将忽略.filter_list_1_containerdiv元素的任何后代

这将做到:

<script type="text/javascript">
    $(function() {
        var zIndexNumber = 1000;
        $('div').not('.filter_list_1_container div').each(function() {
            $(this).css('zIndex', zIndexNumber);
            zIndexNumber -= 10;
        });
    });
</script>
于 2013-07-25T11:55:20.050 回答