【问题标题】:How do I target attribute of opacity in jquery?如何在 jquery 中定位不透明度的属性?
【发布时间】:2011-04-13 22:51:48
【问题描述】:

我知道 attributeContains 选择器,但它如何应用于样式属性?

我想查找所有不透明度设置为 0 的 <a> 标签。

我试过这个:

$("a[style*='opacity: 0']")

但它什么也没返回。

【问题讨论】:

    标签: jquery attributes css-selectors


    【解决方案1】:

    :visible 选择器将不起作用,因为它没有考虑不透明度。

    要仅针对具有0 不透明度的对象,您可以使用.filter() 来检查不透明度的.css() 值:

    $("a").filter( function() {
        return $(this).css('opacity') === '0';
    });
    

    如果您愿意,可以创建自己的选择器:

    $.extend($.expr[':'], {
        opacity: function(elem, i, attr){
          return( $(elem).css("opacity") === attr[3] + '' );
        }
    });
    
    var $invisible = $("a:opacity(0)");
    

    $.extend($.expr[':'], {
        transparent: function(elem, i, attr){
          return( $(elem).css("opacity") === "0" );
        }
    });
    
    var $invisible = $("a:transparent");
    

    【讨论】:

    • +1 正是我的想法。 “具有可见性的元素:隐藏或不透明度:0 被认为是可见的,因为它们仍然占用布局中的空间。” api.jquery.com/visible-selector
    【解决方案2】:

    如果您想知道某个元素是否可见,请使用:

    $('a:not(:visible)');
    

    【讨论】:

    • 天哪,我们很快就打平了 eh ;) 不想在决斗中与你竞争。
    【解决方案3】:

    $('a:not(:visible)')

    您的代码将不起作用,因为它仅在将不透明度应用于元素的样式属性时才起作用 - CSS 样式呢?他们不会申请。 jQuery 提供了:visible:not 选择器,因此您可以组合它们。 http://api.jquery.com/category/selectors/

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2010-10-22
      • 2012-06-25
      • 2014-03-29
      • 1970-01-01
      相关资源
      最近更新 更多