【问题标题】:Delete Attr and add it if class exist - jquery如果类存在,则删除 Attr 并添加它 - jquery
【发布时间】:2017-02-13 20:23:52
【问题描述】:

您好,我对这个小代码有疑问:

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

我想做的是:

  • 查找带有class="delayDiv" 的Div
  • 然后将样式属性保存在变量中
  • 然后,在同一个 div 中搜索 class="visible"(我添加了这个 使用 viewportChecker.js 的类,这意味着只有在 Div 在视口内)。
  • 如果类存在,重新添加样式内容!

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

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

感谢您的帮助。

【问题讨论】:

  • 您面临的具体问题是什么?

标签: jquery each attr


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2020-08-31
      相关资源
      最近更新 更多