首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery空() div,匹配元素除外

Jquery空() div,匹配元素除外
EN

Stack Overflow用户
提问于 2009-08-11 21:08:18
回答 4查看 18.2K关注 0票数 14

有没有办法清空一个div,只留下带有特定类名的元素?或者,有没有办法删除div中的所有元素,只留下具有指定类的元素?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-11 21:12:32

这应该能起到作用:

代码语言:javascript
运行
复制
$('#theDiv').find('*').not('.className').remove();

示例标记:

代码语言:javascript
运行
复制
<div id="theDiv">
    <p>this will be removed</p>
    <p class="className">this will stay</p>
</div>
票数 50
EN

Stack Overflow用户

发布于 2015-06-18 01:35:50

以下是仅使用jQuery选择器的另一个选项:

代码语言:javascript
运行
复制
$("#theDiv *:not('.className')").remove();

像这样的方法和上面的方法的问题是,如果有任何子元素,它们也会被删除,例如:

代码语言:javascript
运行
复制
<div id="theDiv">
    <p>this will be removed</p>
    <p class="className"><strong>this will also be removed :(</strong></p>
</div>

this也将被删除:(文本也将被删除,因为它与通配符*匹配,并且没有className类。为了解决这个问题,我们只想过滤父级的直接子级,例如:

代码语言:javascript
运行
复制
$("#theDiv > *:not('.className')").remove();
票数 8
EN

Stack Overflow用户

发布于 2009-08-11 21:12:28

@Marve的方法可能更好,但这里有另一种方法(使用filter):

代码语言:javascript
运行
复制
$("#yourDiv").html($('#yourDiv').filter('.IWantThisClass, .IWantThisToo').html());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1262930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档