2012-02-13 2 views
9

Я пытаюсь добавить немного кода jQuery ко всем элементам, у которых есть позиция: фиксированный набор на них. Возможно ли это? Было бы очень полезно, если бы это было так, поэтому мне не нужно проходить весь мой код и дополнительный класс для объектов, которые исправлены.jQuery Выбрать элементы с определенным CSS

ответ

22

Это одна должна охватывать все случаи:

$('*').filter(function() { 
    return $(this).css("position") === 'fixed'; 
}); 

Не так быстро, как ответ qwertymk, но и работать, если свойство css наследуется от другого правила, как показано here.

+0

Я только собирался опубликовать этот же точный код, так как я столкнулся с ним, возившись с его кодом и сделал то же самое, что и вы, и это сработало. Отлично, большое спасибо –

+1

@mgibsonbr: Лучший ответ, чем мой. +1 –

4

быстрее и безопаснее, чем ответ Колина:

$('*').filter(function(){ return this.style && this.style.position === 'fixed'; }); 

Подробнее о jQuery filter()

+3

просто интересно узнать, что возвращается, когда 'this.style' и' this.style.position === 'fixed' 'написаны отдельно? – kushalvm

+3

@MegaRacer это защитная проверка, если 'this.style'' undefined'' this.style.position' выдает ошибку 'Can not read position position undefined', поскольку компилятор проверяет слева направо, если' this.style === undefined' он не выдает выражение перед '&&', не вызывая ошибки. –

Смежные вопросы