Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2010, 19:00
Аспирант
Отправить личное сообщение для kidar2 Посмотреть профиль Найти все сообщения от kidar2
 
Регистрация: 05.01.2010
Сообщений: 64

Поиск по стилю
Привет.
Не подскажете как получить элементы страницы со стилем
position: absolute ? Нигде не смог найти ничего подобного...
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2010, 19:38
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

(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;
}
}());
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2010, 21:16
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

kidar2,
расскажите, пожалуйста, для чего Вам нужно это.

e1f предложил Вам замечательный код, пожалуй, единственный возможный способ. Но само решение такой задачи больше смахивает на бенчмарк DOM и reflow.
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2010, 21:22
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

subzey, ну, я бы такое сделал, чтобы рекламу по-быстрому кикать букмарком можно ограничиться определенными тегами, а-ля iframe -- будет быстрее.

UPD Да, а причем тут reflow? Разве что я допилил много всего в DOM, а потом ВНЕЗАПНО решил проверить position
Ответить с цитированием
  #5 (permalink)  
Старый 08.04.2010, 21:28
Аспирант
Отправить личное сообщение для kidar2 Посмотреть профиль Найти все сообщения от kidar2
 
Регистрация: 05.01.2010
Сообщений: 64

Долго объяснять зачем это делается.
Я думал, что через jQuery можно без проблем сделать подобный запрос.
Ответить с цитированием
  #6 (permalink)  
Старый 08.04.2010, 21:30
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

kidar2, нельзя. И это правильно.

UPD Если это Ваш проект, то можно:
- отказаться от выставления position в атрибуте style
- выставлять его навешиванием некоторого класса, к примеру pos-abs:
.pos-abs {
  position: absolute;
}

- в этом случае просто выбираем элементы с этим классом.

Последний раз редактировалось e1f, 08.04.2010 в 21:33.
Ответить с цитированием
  #7 (permalink)  
Старый 09.04.2010, 00:31
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от kidar2
Нигде не смог найти ничего подобного...
неспроста

Сообщение от kidar2
Долго объяснять зачем это делается.
если неизвестена задача, как ее можно решить? Ну ладно... как ее можно нормально решить?
Ответить с цитированием
  #8 (permalink)  
Старый 09.04.2010, 09:40
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

интересно, как разработчик не может знать, какие у него на странице элементы имеют стиль position: absolute или могу иметь?
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 09.04.2010, 10:23
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

$('*[style*="absolute"]')
Ответить с цитированием
  #10 (permalink)  
Старый 09.04.2010, 12:58
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

exec, а если position не в style, а в css? Не защитано.

Skipp, например, разработчик делает bookmarklet.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск на странице no_name jQuery 4 07.09.2010 13:26
Поиск последнего слова в строке AlexFadeev Элементы интерфейса 3 01.04.2010 18:56
jquery поиск как на lastfm.ru tenterro jQuery 1 26.02.2010 19:11
Для чего ограничен поиск? ZoNT Сайт Javascript.ru 4 01.10.2008 15:55
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31