Поиск по стилю
Привет.
Не подскажете как получить элементы страницы со стилем position: absolute ? Нигде не смог найти ничего подобного... |
(function(){
var tags = document.getElementsByTagName('*');
var abs_pos = [];
for (var i = tags.length; i--; ) {
if (getStyle(tags[i], 'position') == 'absolute') {
abs_pos.push(tags[i]);
}
}
console.info(abs_pos);
// Get the computed css property
function getStyle(element, cssRule) {
if (document.defaultView && document.defaultView.getComputedStyle) {
var value = document.defaultView.getComputedStyle(element, '').getPropertyValue(
cssRule.replace(/[A-Z]/g, function(match, char) {
return '-' + char.toLowerCase();
})
);
} else if (element.currentStyle) {
var value = element.currentStyle[cssRule];
} else {
var value = false;
}
return value;
}
}());
|
kidar2,
расскажите, пожалуйста, для чего Вам нужно это. e1f предложил Вам замечательный код, пожалуй, единственный возможный способ. Но само решение такой задачи больше смахивает на бенчмарк DOM и reflow. :) |
subzey, ну, я бы такое сделал, чтобы рекламу по-быстрому кикать букмарком :) можно ограничиться определенными тегами, а-ля iframe -- будет быстрее.
UPD Да, а причем тут reflow? Разве что я допилил много всего в DOM, а потом ВНЕЗАПНО решил проверить position :) |
Долго объяснять зачем это делается.
Я думал, что через jQuery можно без проблем сделать подобный запрос. |
kidar2, нельзя. И это правильно.
UPD Если это Ваш проект, то можно: - отказаться от выставления position в атрибуте style - выставлять его навешиванием некоторого класса, к примеру pos-abs:
.pos-abs {
position: absolute;
}
- в этом случае просто выбираем элементы с этим классом. |
Цитата:
Цитата:
|
интересно, как разработчик не может знать, какие у него на странице элементы имеют стиль position: absolute или могу иметь?
|
$('*[style*="absolute"]')
|
exec, а если position не в style, а в css? Не защитано.
Skipp, например, разработчик делает bookmarklet. |
| Часовой пояс GMT +3, время: 22:09. |