【问题标题】:Select all divs but not those in nested in specific div选择所有 div,但不选择嵌套在特定 div 中的那些
【发布时间】:2013-07-25 11:51:39
【问题描述】:

我正在使用这个 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?

【问题讨论】:

  • 那是因为您专门忽略了 .filter_list_1_containe 的直接子 div,这听起来可能很愚蠢,但是您可以删除那个 '>' 符号并尝试仅使用 .filter_list_1_container div

标签: javascript jquery html


【解决方案1】:

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

改变

.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;
    });
});

【讨论】:

  • 完美!按预期工作!
【解决方案2】:

您在选择器中使用了&gt;,这意味着它只会选择该元素的直接子元素。如果删除它,它将忽略 .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>

【讨论】:

    【解决方案3】:

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

    .filter_list_1_container | div | div

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

    尝试删除“>”运算符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多