【发布时间】:2011-04-13 22:51:48
【问题描述】:
我知道 attributeContains 选择器,但它如何应用于样式属性?
我想查找所有不透明度设置为 0 的 <a> 标签。
我试过这个:
$("a[style*='opacity: 0']")
但它什么也没返回。
【问题讨论】:
标签: jquery attributes css-selectors
我知道 attributeContains 选择器,但它如何应用于样式属性?
我想查找所有不透明度设置为 0 的 <a> 标签。
我试过这个:
$("a[style*='opacity: 0']")
但它什么也没返回。
【问题讨论】:
标签: jquery attributes css-selectors
: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");
【讨论】:
如果您想知道某个元素是否可见,请使用:
$('a:not(:visible)');
【讨论】:
$('a:not(:visible)')
您的代码将不起作用,因为它仅在将不透明度应用于元素的样式属性时才起作用 - CSS 样式呢?他们不会申请。 jQuery 提供了:visible 和:not 选择器,因此您可以组合它们。 http://api.jquery.com/category/selectors/
【讨论】: