JQuery选择并删除不在某个div中的所有ps?

时间:2016-09-10 16:57:28

标签: javascript jquery html css

好的,我在这里有一个非常复杂的html设置,在我的函数中我需要删除不在这两个子类中的所有ps(不仅仅是所有div,ps):.panel-heading和{{ 1}}

最初我得到了以下所有ps:

.panel-body

用这个:

<div class="panel panel-default">

    <div class="panel-heading" role="tab" id="headingEight">

        <h4 class="panel-title">
            <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseNine2" aria-expanded="false" aria-controls="collapseNine2">
                <i class="fa fa-plus-square-o"></i>
                <span style="margin-left: 12px; display: inline-block;"></span>AirWatch and Workspace ONE
            </a>   
        </h4>

    </div>

    <div id="collapseNine2" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingEight">

        <div class="panel-body">

除了它删除字面上所有的ps之外,这是有效的,我不能拥有它。我知道我需要使用not selector,所以我尝试过:

$(labArr[i].selector).find(".panel-default").find("p").remove()

$(labArr[i].selector).find(".panel-default").find("div:not(.panel-body, .panel-heading)").remove();

哪个不起作用。我不知道为什么。

如何删除面板默认值中的ALL ps,除了那两个类中的那些?

1 个答案:

答案 0 :(得分:1)

与选择者一样,有很多不同的方法来实现同样的目标,但试试这个:

$(labArr[i].selector).find(".panel-default p").not(function() {
    return $(this).closest('.panel-body, .panel-heading').length;
}).remove();

检查每个匹配的段落,然后丢弃任何带有两个禁止类别的元素下的段落。