如何查找具有特定值的子元素并删除它的直接父节点?

时间:2015-04-14 11:57:33

标签: jquery html

我需要找到一个元素<strong class="name">Priority:</strong>。如果存在,我需要删除它的父元素,即<div class="wrap"> 我知道<li class="item">中还存在其他元素。例如<strong class="name">Type:</strong>。但那不应该触及。

<li class="item">
    <div class="wrap">
        <strong class="name">Type:</strong>
        <span id="type-val" class="value">
             <img alt="Task" height="16" src="task.png" title="" width="16"> Task
        </span>
    </div>
</li>
<li class="item">
        <div class="wrap">
            <strong class="name">Priority:</strong>
            <span id="priority-val" class="value editable-field inactive" title="Click to edit">
                   <img alt="2. Critical" height="16" src="/critical.png" title="2"> 2. Critical
            <span class="overlay-icon aui-icon aui-icon-small aui-iconfont-edit"></span></span>
        </div>
</li>

我尝试了以下代码,但它没有帮助。

$("li.item").find("strong.name").each(function(){
if (this[value="Priority:"]) {
    this.parent.remove()
}
});

3 个答案:

答案 0 :(得分:1)

使用filter()closest('li')删除父li

$("li.item strong.name").filter(function(){
    return $(this).text().indexOf('Priority:') > -1;
}).closest('li').remove();
  //to remove <div class="wrap"> use parent() instead of closest(..)

或使用:contains()

$("li.item strong.name:contains(Priority:)").closest('li').remove();

答案 1 :(得分:1)

您可以尝试将:has:contains结合使用。例如:

$('li.item .wrap:has(strong.name:contains("Priority:"))').remove();

请参阅Fiddle

答案 2 :(得分:0)

   $('.name').each(function(){
     $val = $(this).text();

     if ($val == "Priority:") {
       $(this).parent().remove();
     };
  });