如果另一个元素包含带有jQuery

时间:2016-10-05 16:27:30

标签: javascript jquery

我的网站上有优惠券旋转,我想实现以下功能:
对于每个优惠券,如果brandName包含文本'test',则隐藏包含它的div,这意味着我想要隐藏所有在其品牌名称处'test'的优惠券。
因此,假设每个优惠券div如下:

<div class="coupon-box">
  <div class="brandName">Test1</div>
  <div class="coupon-image"><img src="coupon-image.jpg"></div>
</div>

我想隐藏每个在他的头衔上'测试'的优惠券。我实际上设法做了第一部分(获得带有文本的brandNames)但我不知道如何隐藏其优惠券盒。
我到目前为止所做的是以下内容:

$( document ).ready(function() {
    $('.brandName').each(function(){
       var el= $(this);
       var text = el.html();
       if (text.indexOf("test") !==-1){
          //missing-code
       }
   });
});

有什么建议吗?我尝试添加$('.coupon-box').css('display', 'none');,但它只是隐藏了所有优惠券

2 个答案:

答案 0 :(得分:1)

它不起作用,因为您选择的是所有元素,而不是您当前所在的元素。因此您需要查找该项目的父元素。

所以选择元素的父元素

el.parent().hide();

或寻找与班级

最近的祖先
el.closest(".coupon-box").hide();

答案 1 :(得分:0)

$( document ).ready(function() {
    $('.brandName').each(function(){
       var el= $(this);
       var text = el.html();
       if (text.indexOf("test") !==-1){
         el.parent().css('display', 'none');
       }
   });
});

小心,因为'测试'!='测试'