如果div中包含某个字符串,如何删除它?

时间:2010-07-28 00:30:46

标签: javascript jquery

页面上有一个项目列表,有些是空白的,其中一个例子是:

<div class="item itemask">
  <div class="tophead">
    <div class="itemnumber">30</div>

    <a class="article" href=""></a>
  </div>
  <div class="bottomhead"> points by <a class="userlink" rel=""></a> ago&nbsp;&nbsp;&nbsp; <a href="/item?id=">discuss</a>
</div>

因此,可以使用jQuery或JavaScript在页面上<a class="article" href="">的任何实例中查找div class=item的实例,然后删除或隐藏该父个人div class=item包含那段代码?

2 个答案:

答案 0 :(得分:5)

更新回答:根据评论中的说明,请尝试以下方式:

$('div.item:has(a.article[href=""])').remove();​

或者这也应该有效:

$('div.item:has(a.article:not([href]))').remove();​

如果您遇到任何问题,请尝试以下方法:

$('div.item a.article').filter(function() {
    return $.trim(this.innerHTML) == '';
}).closest('div.item').remove();​​​​​​​

原始回答:

使用jQuery:

$('div.item:has(a.article)').remove();

这会选择<div>item元素,其中<a>类具有类article的后代.hide()元素,并将其删除。

当然,如果您愿意,可以使用$('div.item:has(a.article)').hide();

parent

如果您真的想要删除a.article的实际$('div.item :has( > a.article)').remove(); ,那么您可以这样做:

a.article

这将删除.item的父级而不是{{1}}级的父级。不确定你的意思。

答案 1 :(得分:2)

隐藏:

$("div.item a.article[href='']").parents(".item").css('display','none');

要删除:

$("div.item a.article[href='']").parents(".item").remove();