如何在jquery中定位不透明度的属性?

时间:2010-09-17 21:58:35

标签: jquery attributes css-selectors

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

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

我试过了:

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

但它什么也没有回报。

3 个答案:

答案 0 :(得分:19)

: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 :(得分:1)

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

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

答案 2 :(得分:1)

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

您的代码无法正常工作,因为只有在对元素的样式属性应用不透明度时它才有效 - CSS样式怎么样?他们不会申请。 jQuery提供:visible:not选择器,因此您可以将它们组合在一起。 http://api.jquery.com/category/selectors/