我想删除DOM中的所有隐藏元素,但保留某些类下的所有(包含隐藏项).
这里有一个(非)工作示例:
<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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
我一直在玩:不是运营商,但没有成功.
zzz*_*Bov 11
你的意思是这样的?
$(':hidden').not('.block, .block *').remove();
Run Code Online (Sandbox Code Playgroud)
或者:
$(':hidden:not(.block, .block *)').remove();
Run Code Online (Sandbox Code Playgroud)
不过$.fn.not()
是一个小比更可靠:not()