javascript - 检查子元素是否与父元素具有相同的类并删除子元素 - jQuery

标签 javascript jquery css

采用如下简单格式:

<div class="par">
    <div class="chl"> Child 1</div>
    <div class="chl"> Child 2</div>

    <div class="par"> Child as Parent 

        <div class="chl"> Child 3</div>
        <div class="chl"> Child 4</div>

    </div>

    <div class="chl"> Child 5</div>

    <div class="par"> Child as Parent 

        <div class="chl"> Child 6</div>
        <div class="chl"> Child 7</div>

    </div>
    <div class="chl"> Child 8</div>
</div>

具有 par 类的主 div 也有一些与其父类具有相同类的子 DIV(par)。我想删除具有 par 类的 DIV,除了主要的 (我的意思是最上面的) 但保留其子项。

很难用英语解释,我寻求的输出是:

<div class="par">
    <div class="chl"> Child 1</div>
    <div class="chl"> Child 2</div>

    <div class="chl"> Child 3</div>
    <div class="chl"> Child 4</div>

    <div class="chl"> Child 5</div>

    <div class="chl"> Child 6</div>
    <div class="chl"> Child 7</div>

    <div class="chl"> Child 8</div>
</div>

具有 par class 的 beween 中的 div 已经消失,但那些 div 的子级仍然存在。

我想用 jQuery 试试这个,但是这里有一些我想实现的逻辑(我知道下面的代码失败得很惨),所以,我想问一下如何用 jQuery 实现这个。

if($('div.par').parent('div.par').has('div.par')) {
    $('div.par').parent('div.par').unwrap();
}

JSFiddle

最佳答案

您可以使用:

$('.par .par>.chl').unwrap();

如果你想删除文本 Child as Parent 然后使用 contents()filter():

$('.par').contents().filter(function() {
    return this.nodeType == 3    
}).remove(); 

Updated Fiddle

关于javascript - 检查子元素是否与父元素具有相同的类并删除子元素 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340519/

相关文章:

javascript - AngularJS - 不尊重 Z-Index 更改上下滑动 Div

javascript - textarea 上的正则表达式

javascript - 在 select from string 中设置多个值

javascript - header 失败的 AJAX 请求

IE 中的 CSS3 阴影使 div 圆 Angular 变硬

html - css 选择器选择页面中存在特定元素的所有元素

javascript - 使用 ngModel 进行 Angular 2 单元测试

jQuery zIndex div显示问题

javascript - 使用 JavaScript 和 HTML 提交包含所选音乐会座位的表格

javascript - 预加载器不会停止并且不会转换到主页