选择所有div,但不选择嵌套在特定div中的div

时间:2013-07-25 11:51:39

标签: javascript jquery html

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

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

3 个答案:

答案 0 :(得分: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;
    });
});

答案 1 :(得分: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>

答案 2 :(得分:0)

你的问题是'&gt;'操作员正在选择所有直接孩子。所以在下面的例子中..

.filter_list_1_container | DIV | 格

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

尝试删除'&gt;'操作