微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想删除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()

原文地址:https://www.jb51.cc/jquery/178255.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐