用于删除所有元素的jQuery规则,如果任何深度的任何子元素具有特定的类

时间:2012-04-18 09:50:13

标签: jquery

采用这个DOM的最简单的规则是什么:

<div>
    <ul>
        <li>  
            <div>
                <a href="#" class="remove">link</a>
            </div>
        </li>
        <li>  
            <div>
                <span class="ok"></span>
            </div>
        </li>
        <li>  
            <div class="remove"></div>
        </li>
    </ul>
</div>

并删除所有<li>元素,如果其中任何元素具有包含"remove"类的任何深度的子元素。结果html如下所示:

<div>
    <ul>
        <li>  
            <div>
                <span class="ok"></span>
            </div>
        </li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:1)

$('li:has(.remove)').remove();

http://api.jquery.com/has-selector/

来自文档:

  

如果存在<div>,则表达式$('div:has(p)')与<p>匹配   在其后代中的任何地方,而不仅仅是一个直接的孩子。

http://jsfiddle.net/WNcKE/1/