0

如何使用 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 执行此操作。

4

2 回答 2

3

我想你正在寻找这个:

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

之所以可行,是因为它选择了 的所有直系后代,body然后删除了具有idof 的所有直系后代popup

于 2012-05-08T20:39:23.313 回答
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');
;
于 2012-05-08T20:47:57.513 回答