【问题标题】:Using jQuery to check each div for element and apply "if" statement使用 jQuery 检查每个 div 中的元素并应用“if”语句
【发布时间】:2013-01-08 23:40:38
【问题描述】:

我正在尝试检查页面并找到没有图像的 div 并相应地更改该 div 中元素的类。该页面是动态生成的,所以我需要检查每个元素。代码本身适用于影响所有 div,但我需要检查每一个,并且只影响带有图片的那些。

HTML:

<div class="container"><img width="695" height="519" src="pic123.jpg" /><div class="arrow"></div><!--arrow--></div><!--container-->
<div class="container"><div class="arrow"></div><!--arrow--></div><!--container-->

jQuery:

$('.container').each(function(){
if ($(this).has("img")){
$('.arrow').addClass('classone');
};
});

【问题讨论】:

    标签: jquery


    【解决方案1】:

    你不需要 if 语句:

    $(".container:has(img) .arrow").addClass("classone");
    

    或者你可以试试这个版本:

    $(".container").filter(":has(img)").find(".arrow").addClass("classone");
    

    【讨论】:

    • 有效!惊人的!谢谢凯文!
    【解决方案2】:

    试试:

    $('.container').each(function(){
        if ($(this).has("img")){
            $('.arrow',this).addClass('classone');
        };
    });
    

    $(this).find('.arrow').addClass('classone'); 也可以

    【讨论】:

      【解决方案3】:

      据我了解,如果你只是改变它应该可以正常工作

      $('.arrow').addClass('classone');

      $('.arrow', this).addClass('classone');

      或尝试使用.has,如下所示,

      $('.container').has('img').find('arrow').addClass('classone');
      

      【讨论】:

        【解决方案4】:

        这应该可以解决问题:

        $('.container').each(function(){
           if ($("img", this).length > 0){
              $('.arrow', this).addClass('classone');
           };
        });
        

        【讨论】:

          猜你喜欢
          • 2012-08-18
          • 1970-01-01
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 2011-07-02
          • 1970-01-01
          • 2018-05-20
          • 1970-01-01
          相关资源
          最近更新 更多