Найти элементы с позицией: атрибут
Я попытался бы найти все "абсолютные" элементы на моей странице; с jQuery Я, хотя это будет что-то вроде
$('[position="absolute"]')
но на ff 10.0.2 Я не могу найти элемент...
Кроме того, я не могу запустить код exaple на http://api.jquery.com/attribute-equals-selector/
Что-то не так в этом синтаксисе?
Ответы
Ответ 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: относительное');
Ответ 3
Попробуйте следующее:
$("*[style*='position:absolute']").each (function () {
alert($(this).html());
});
Демо: http://jsfiddle.net/XRRbr/1/
Дополнительная информация: http://api.jquery.com/attribute-contains-selector/