删除Attr并在类存在时添加它 - jquery

时间:2016-10-05 11:47:57

标签: jquery each attr

你好,这个小代码有问题:

$(".delayDiv").each(function(){
    var img_attr = $(this).attr('style');
    $(this).attr('style', '');
    if ($(".delayDiv").hasClass("visible")) {
        $(this).attr('style', img_attr);
    }
});

我想做的是:

  • 使用class="delayDiv"
  • 查找Div
  • 然后将style属性保存在变量
  • 然后,搜索类="可见"在同一个div中(我添加了这个 使用viewportChecker.js的类,这意味着仅在添加类时才添加该类 Div在视口内。)
  • 如果该类存在,请再次添加样式内容!
  

DIV outsite viewport:<div class="backImg"></div>

     

视口内的DIV:<div class="backImg visible"></div>

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

仅当元素没有'visible'类时才删除样式。

$(document).ready(function(){
    $(".delayDiv").each(function(){
        if (!$(".delayDiv").hasClass("visible")) {
            $(this).removeAttr('style', '');
        }
    }); 
})

答案 1 :(得分:1)

您只需要一个:not()选择器和removeAttr()来删除所有没有可见类的主要类的样式

$(".delayDiv:not(.visible)").removeAttr('style')