我想删除DOM中的所有隐藏元素,但保留某些类下的所有(包含隐藏项).
这里有一个(非)working example:
<div id="init"> <input type="hidden" name="x" value="y" /> <ul> <li>Hello</li> <li>Bye</li> <li class="block"> <ol> <li>First</li> <li>Second</li> <li>Third</li> </ol> </li> <li>Test</li> </ul> </div>
CSS:li {“display:none”}
所以,我正在寻找删除所有隐藏项目的选择器,除了那些具有块类或在块类下的项目.在这种情况下,预期的结果是:
<div id="init"> <ul> <li class="block"> <ol> <li>First</li> <li>Second</li> <li>Third</li> </ol> </li> </ul> </div>
我一直在玩:不是操作符,但没有成功.
解决方法
你的意思是这样的?
$(':hidden').not('.block,.block *').remove();
或者:
$(':hidden:not(.block,.block *)').remove();
但$.fn.not()是一个little more reliable than :not()