Как мне настроить атрибут непрозрачности в jquery? - PullRequest
8 голосов
/ 18 сентября 2010

Я знаю о селекторе attributeContains, но как он применяется к атрибутам стиля?

Я хочу найти все <a> теги, у которых непрозрачность установлена ​​на 0.

Я пыталсяэто:

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

но ничего не возвращает.

Ответы [ 3 ]

19 голосов
/ 18 сентября 2010

Селектор :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 голос
/ 18 сентября 2010

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

Ваш код не будет работать, поскольку он работает только тогда, когда к атрибуту стиля элемента применяется прозрачность - как насчет стилей CSS ???они не будут применяться.jQuery предоставляет селекторы :visible и :not, поэтому вы можете комбинировать их.http://api.jquery.com/category/selectors/

1 голос
/ 18 сентября 2010

Если вы хотите узнать, является ли элемент видимым, используйте:

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