jquery如果div显示没有父类的addclass

时间:2011-02-16 00:31:53

标签: jquery if-statement parent

如果带有'refinement_category_item'类的div下面的div有一个style =“display:none”,我想在div上添加一个类'catresults'。

 <div class="refinement_category_section">
    <div class="find_by_category_text">
      <div class="catresults">By Category</div>
    </div>
    <div class="refinement_category_item" style="display: none"> <a onclick="Add_Search_Param('cat', '2847'); Refine();" href="javascript: void(0);" class="refinement_category_link"> <span class="refinement_category_text">Back Bar Coolers (61)</span> </a> </div>



   $(document).ready(function(){
  if($(".refinement_category_item").not(":visible")){
  $(".refinement_category_item").parent().find("div.catresults").addClass('backgroundfilter');
  }
});

5 个答案:

答案 0 :(得分:7)

var div = $('.refinement_category_item');

if ( ! div.is(':visible')) {
   div.parent().addClass('backgroundfilter');
}

一些说明......

  • this由jQuery设置 - 它不是由if构造设置的。
  • 使用is(':visible')是jQuery方式。
  • 在使用addClass()添加课程时,您不必将前导.放在那里。
  • 通常最好使用DOM ready $(function() { ... }),然后将脚本内联到DOM元素下。

答案 1 :(得分:2)

$(".refinement_category_item:hidden").prev()
                           .children('.catresults').addClass('backgroundfilter');

答案 2 :(得分:1)

您使用$(this)代码不知道$(this)是什么。你也应该在那里使用$(".refinement_category_item")

同样$(".refinement_category_item").css('display')== 'none'也可能是$(".refinement_category_item").is(':hidden')

答案 3 :(得分:0)

试试这个:

$(document).ready(function(){
  if($(".refinement_category_item").is(":visible")){
  $(".refinement_category_item").parent().find("div.catresults").addClass('.backgroundfilter');
  }
});

答案 4 :(得分:0)

我更倾向于做这样的事情。未经测试的代码,但原则是合理的。

HTML:

<div class="refinement_category_section">
    <div class="find_by_category_text">
      <div class="catresults">By Category</div>
    </div>
    <div class="refinement_category_item"> <a onclick="Add_Search_Param('cat', '2847'); Refine();" href="javascript: void(0);" class="refinement_category_link"> <span class="refinement_category_text">Back Bar Coolers (61)</span> </a> </div>

JS:

<script>
$(document).ready(function(){
    if($(".refinement_category_item").not(":visible")) {
        $(this).parent().addClass(".backgroundfilter");
    }
});
</script>