jquery有()没有按预期工作

时间:2014-01-31 14:59:29

标签: javascript jquery html if-statement

假设我有这个标记:

<div class="comment">
  <span class="test">some content here</span>
<p>Lorem ipsum</p>
</div>

<div class="comment">
  <p>Lorem ipsum</p>
</div>

我想检查span.test中是否存在div.comment,是否存在以隐藏所有div.comment并仅显示div.comment所在的span.test不存在。

我被困在这里:

 if($("span.test").length) {
    $(".element:has(span.test)").hide();

我不知道如何继续实现我想要的目标。

有关如何使这项工作的任何建议?

4 个答案:

答案 0 :(得分:3)

您可以像这样使用:has

$('.comment:has(span.test)').hide()

.has()

$('.comment').has('span.test').hide()

答案 1 :(得分:2)

这将使用span.test

隐藏所有评论
$('.comment span.test').parent('.comment').hide();

答案 2 :(得分:0)

$("div.comment").filter(function () {
    return $(this).find('span.test').length
}).hide();

<强> jsFiddle example

答案 3 :(得分:0)

像这样 -

$("span.test").closest('.comment').hide(); // hide comment that contains .test