Подтвердить что ты не робот

Найти элементы с позицией: атрибут

Я попытался бы найти все "абсолютные" элементы на моей странице; с jQuery Я, хотя это будет что-то вроде

$('[position="absolute"]')

но на ff 10.0.2 Я не могу найти элемент...

Кроме того, я не могу запустить код exaple на http://api.jquery.com/attribute-equals-selector/ Что-то не так в этом синтаксисе?

4b9b3361

Ответ 1

Вы можете использовать filter()

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

Вы не можете использовать селектор атрибутов атрибутов, потому что этот селектор будет искать элементы с атрибутом, называемым позицией, которая равна абсолютной, как эта

 <div position="absolute">

но в вашем случае позиция - это свойство css

Ответ 2

На основе ответа Nicola вы также можете расширить механизм селектора jQuery.

$.extend($.expr[':'],{
    absolute: function(el) {
        return $(el).css('position') === 'absolute';
    },
    relative: function (el) {
        return $(el).css('position') === 'relative';
    },
    static: function (el) {
        return $(el).css('position') === 'static';
    },
    fixed: function (el) {
        return $(el).css('position') === 'fixed';
    }
});

Затем вы можете делать такие вещи.

$( ': абсолютный');

$( 'div.sidebar: относительное');