选择除特定div以外的所有内容

时间:2011-07-09 14:24:45

标签: jquery jquery-selectors

我试图在另一个div中包裹身体内的所有内容,除了一个div ID和其中的所有内容。我试过这个:

$('div:not(#dontselect)').wrap('<div class="wrapper" />');

它有效,但#dontselect中的所有内容也都包含在.wrapper类中。我希望#dontselect及其中的所有内容保持原样。有什么帮助吗?

5 个答案:

答案 0 :(得分:0)

您可以添加其他:not

$('div:not(#dontselect):not(#dontselect div)')

这排除了div的所有#dontselect个后代。

答案 1 :(得分:0)

你需要包装div孩子吗? 在没有孩子使用的情况下仅选择身体中的div

$('body > div:not(#dontselect)').wrapp('<div />');

答案 2 :(得分:0)

你也可以分3步完成

$('body')
   .find('div')             // step 1, find all divs
   .filter('#dontselect')     // step 2, add class 'no-wrapp'
      .addClass('no-wrapp')
         .find('div').addClass('no-wrapp')
   .end().end()
   .filter('div:not(.no-wrapp)').wrap('<div class="wrapper" />'); // step 3 wrap

然后你可以使用'no-wrap'类只用于不包装的div

答案 3 :(得分:0)

试试这个:)

$('div:not(#dontselect *)')

答案 4 :(得分:0)

另一个混合:

$('div').filter(function(){ return !$(this).parents('#dontselect').length })

使用#dontselect父级过滤掉所有元素。