我试图在另一个div中包裹身体内的所有内容,除了一个div ID和其中的所有内容。我试过这个:
$('div:not(#dontselect)').wrap('<div class="wrapper" />');
它有效,但#dontselect中的所有内容也都包含在.wrapper类中。我希望#dontselect及其中的所有内容保持原样。有什么帮助吗?
答案 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
父级过滤掉所有元素。