![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| zevgan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 25.3.2005 Репутация: нет Всего: нет |
Всем доброго вечера.
Подскажите пожалуйста синтактически правильную конструкцию на js описывающую следующее условие: "Если на странице присутствует элемент с классом xyz - измени в стиле элемента с ID abc значения position:static ; visibility:visible;" Конструкция наверняка довольно простая и если уже где-то есть, просто дайте линк. Поиском не нашёл. Заранее спасибо. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Проще писать это на jQuery.
Это сообщение отредактировал(а) ksnk - 25.4.2008, 22:56 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| zevgan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 25.3.2005 Репутация: нет Всего: нет |
Спасибо за ответ =)
Да, это вариант, но только лишь из-за этой ерунды прикручивать к страничке 50-ти килобайтовый jQuery не хочется... Сам покопавшись в исходниках чужих скриптов нашёл такую конструкцию:
Она не совсем соответствует первично заданным критериям и наверное довольно не эстетична... Но ведь работает |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
zevgan, Минимизированный и ужатый jQuery - 30 кб.
а из какой библиотеки такая конструкция? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 1 Всего: 66 |
||||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Zeroglif, Ну, я представил себе процесс пробежки по html-дереву, вообразил количество функций, которые нужно бы сюда скопировать + для работы с классами, и решил ограничится 3 строчками на jQuery
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Zeroglif |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 1 Всего: 66 |
В javascript-e дефис не считается частью слова, если классы называются сложно - с дефисами, то метасимвол \b не удачный выбор:
Тогда в таком же стиле можно ограничиться и одной
|
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Не совсем ;-) Эту самую f никакой чужой дядя не написал и придется ее сочинять самому.
Zeroglif, Мне почему-то кажется, что символы $ и ^ не входят в конструкцию \b в регулярке... Так что придется писать как здесь... Это сообщение отредактировал(а) ksnk - 26.4.2008, 10:29 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 1 Всего: 66 |
Чужой дядя вообще ничего и не может для меня написать по определению по той простой причине, что он не знает, что мне нужно. Зачем ^ и $? И \b зачем? Никто кроме автора скрипта не знает детально, что именно ему нужно, но предположу, что не "пробежка", вариантов много: a) можно ли обойтись обращением непосредственно к классу, то бишь к стилю - styleSheets ? б) нужно ли обходить все элементы - getElementsByTagName('*') ? в) нужно ли заодно поддержать старые браузеры - all ? г) нужно ли предусмотреть будущее - getElementsByClassName() ? д) зачем вообще устанавливать такую зависимость (от элемента с классом), нельзя ли её упростить ? и т.д. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Чужой дядя написал jQuery настолько для этой задачи удачно, что она решается в три строчки. ;-) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 1 Всего: 66 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |