如何删除JQuery中除某些DOM元素之外的所有元素?

如何删除JQuery中除某些DOM元素之外的所有元素?,jquery,Jquery,我想删除DOM中的所有隐藏元素,但保留特定类下的所有(包括隐藏项) 这里有一个(非): 我一直在玩:不是操作符,但没有成功。你实际上可以使用CSS: li.block, li.block li { display: block } 或者更全面 li.block, li.block>* * { display: block } 你是说像这样 $(':hidden').not('.block, .block *').remove(); 或者: $(':hidden:not(.bloc

我想删除DOM中的所有隐藏元素,但保留特定类下的所有(包括隐藏项)

这里有一个(非):


我一直在玩:不是操作符,但没有成功。

你实际上可以使用CSS:

li.block, li.block li { display: block }


或者更全面

li.block, li.block>* * { display: block }
你是说像这样

$(':hidden').not('.block, .block *').remove();
或者:

$(':hidden:not(.block, .block *)').remove();

但是
$.fn.not()
是一个

您是否要检查直接父元素是否有特定的类,或者您是否需要沿着父(s)树向上移动?整个子树必须保持不变,才能将
$('div:not(:has(video))
替换为
。not
。has
?@IulianOnofrei,如果您有不同的问题,请使用页面顶部的“提问”按钮(假设它符合SO准则)。
$(':hidden').not('.block, .block *').remove();
$(':hidden:not(.block, .block *)').remove();