如果子包含类,则隐藏父级

时间:2016-11-04 13:58:09

标签: javascript

我遵循了这个jQuery: Hide parent <td> if contains child <input> with specific class?,但它在我的代码中无效:

$(function() {
$(".video-list-item").filter(function() {
     return $('span', this).hasClass('.view-count');
}).hide();
});

https://jsfiddle.net/xzeeuotL/

6 个答案:

答案 0 :(得分:3)

有两件事需要解决,但你很接近。

1)您没有将Jquery包含为JSFiddle的库

2)在hasClass方法中,您需要删除班级名称中的.

$(function() {
$(".video-list-item").filter(function() {
     return $('span', this).hasClass('view-count');
}).hide();
});

这是一个工作小提琴

https://jsfiddle.net/rn2jzpfc/

答案 1 :(得分:1)

你很亲密。你的代码中只有一个错误。 当您检查某些内容hasClass是否需要.前言时。

还记得你需要包含jquery。

$(function() {
  $(".video-list-item").filter(function() {
    return $('span', this).hasClass('view-count');
  }).hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="video-list-item">
  <span class="view-count">HIDE THIS</span>
</div>
<div class="video-list-item">
  <span>DON'T HIDE THIS</span>
</div>

您可以在没有Jquery

的情况下执行此操作

以下是使用纯javascript的示例。

var divSel = document.querySelectorAll('.video-list-item > .view-count');

for (var i = 0; i < divSel.length; i++) {
  divSel[i].parentElement.style.display = "none";
}
<div class="video-list-item">
  <span class="view-count">HIDE THIS</span>
</div>
<div class="video-list-item">
  <span>DON'T HIDE THIS</span>
</div>

希望这有帮助。

答案 2 :(得分:0)

下一个代码返回带有video-list-itemview-count类的父类;然后隐藏父母。我认为这比你的方法更容易:

$(".view-count").closest('.video-list-item').hide();


更新了JSFiddle:https://jsfiddle.net/tomloprod/xzeeuotL/2/

答案 3 :(得分:0)

另一种解决方案:

$(function() {
    $('.video-list-item').find('span.view-count').hide();
});

答案 4 :(得分:0)

您必须更改案例的语法。

您必须确保<td>的班级名称类似“.video-list-item”,然后更改$('span', this) $('input', this),当然,您输入会有一个类名view-count。像这样......

$(function() {
$(".video-list-item").filter(function() {
     return $('input', this).hasClass('view-count');
}).hide();
});


<td class="video-list-item">
 <input class="view-count">
</td>

我希望它可以帮助你...美好的一天!!

答案 5 :(得分:0)

如果要删除包含特定类孩子的最亲生父母,这很有用:

<div class="closest_parent">
    <div></div>
    <div class="child_class"></div>
</div>
$('.child_class').closest('.closest_parent').remove();