Поиск по стилю
Привет.
Не подскажете как получить элементы страницы со стилем 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, время: 13:27. |