jQuery - 选择除一个div之外的页面上的所有内容

时间:2012-05-08 20:37:49

标签: jquery background popup fade

如何使用jQuery选择除特定div之外的页面上的每个和所有内容?

实际上我试图在特定div的弹出窗口中淡化其余背景。 但问题是并非一切都在某个div内。 很少有元素没有父div。

<body>
    12345

    <div id='second_div'>
       XXXXXX
    </div>

    56789

    <div id='popup'>
       AAAAA
    </div>
</body>

我正在使用下面的代码,但这是没有褪色的内容,没有父div (即12345和56789)。它只是'second_div'的内容消失(即XXXXXX)。

$('body > div:not(#popup)').css("opacity",'0.7');

请指导我如何使用jQuery执行此操作。

2 个答案:

答案 0 :(得分:3)

我认为你正在寻找这个:

$("body > *").not('#popup').css("opacity", '0.7');

这样做的原因是因为它选择body的所有直接后代,然后删除所有id popup的直接后代。

答案 1 :(得分:1)

经过测试并完美运行,虽然我已经测试了另一个但它不是,但无论如何,祝你好运!

var lines = $('body').html().split('\n');
$.each(lines, function(k, v){
  lines[k] = '<span>'+v+'</span>';
});

$('body').html(lines.join(''));

$('body > *').css("opacity", '0.7').find('#popup').parent().css("opacity", '1');
;