Re: Javascript доступ к элементу
От: GarryIV  
Дата: 04.06.07 09:53
Оценка: +2
Здравствуйте, Kimosabe, Вы писали:

K>Есть список:

K>
<ul id="menu1">
K>    <li><a href="#">Menu1</a></li>
K>    <li><a href="#">Menu2</a></li>
K>    <li><a href="#">Menu3</a></li>
K>    <li><a href="#">Menu4</a></li>
K>    <li><a href="#">Menu5</a></li>
K></ul>


K>Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???


<a id="Menu1" href="#">Menu1</a> далее getElementById(). Закладываться на положение в списке это черевато боком.
WBR, Igor Evgrafov
Re: Javascript доступ к элементу
От: sembel Fast Version Control System
Дата: 03.06.07 17:19
Оценка: 3 (1)
Здравствуйте, Kimosabe, Вы писали:

K>Есть список:

K>
<ul id="menu1">
K>    <li><a href="#">Menu1</a></li>
K>    <li><a href="#">Menu2</a></li>
K>    <li><a href="#">Menu3</a></li>
K>    <li><a href="#">Menu4</a></li>
K>    <li><a href="#">Menu5</a></li>
K></ul>


K>Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???


var obj = document.getElementById("menu1");
var as = obj.getElementsByTagName("a");
as[2].style.background = "red";
Re[7]: Javascript доступ к элементу
От: Mamut Швеция http://dmitriid.com
Дата: 04.06.07 08:51
Оценка: 2 (1)
S>>Про поиск нод регекспами: рекомендую ознакомиться с jQuery. Сэкономит массу нервов.
S>Спасибо не знаком с jQuery, но проблемы решаю и так

Решение проблемы из оригинального поста на jQuery:
// индексация элементов идет с 0

$('#menu1 a:eq(2)').css('background-color', '#F00');


об этом подробнее здесь
Автор(ы): Dmitrii 'Mamut' Dimandt
Дата: 11.04.2002
В статье описана библиотека jQuery. Разобраны ключевые моменты работы с библиотекой — нахождение элементов на странице, манипуляция объектной моделью документа, базовая анимация, работа с технологией AJAX. В статье приведено большое количество примеров работающего кода.
(или, пока статья в полном объеме не появилась, здесь)


dmitriid.comGitHubLinkedIn
Re[2]: Javascript доступ к элементу
От: anonymous Россия http://denis.ibaev.name/
Дата: 04.06.07 05:25
Оценка: +1
Здравствуйте, Аноним, Вы писали:

K>>Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???

А>
А>var ul = document.getElementById('menu1');
А>    ul.chlildNodes[2].style = "";//что-то
А>


Не сработает в Gecko-браузерах.
Javascript доступ к элементу
От: Kimosabe  
Дата: 03.06.07 17:15
Оценка:
Есть список:
<ul id="menu1">
    <li><a href="#">Menu1</a></li>
    <li><a href="#">Menu2</a></li>
    <li><a href="#">Menu3</a></li>
    <li><a href="#">Menu4</a></li>
    <li><a href="#">Menu5</a></li>
</ul>


Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???
Re[2]: Javascript доступ к элементу
От: Kimosabe  
Дата: 03.06.07 18:00
Оценка:
Здравствуйте, sembel, Вы писали:
S>var obj = document.getElementById("menu1");
S>var as = obj.getElementsByTagName("a");
S>as[2].style.background = "red";

Ура-а-а! спасибо!
Re: Javascript доступ к элементу
От: Аноним  
Дата: 03.06.07 18:18
Оценка:
Здравствуйте, Kimosabe, Вы писали:

K>Есть список:

K>
<ul id="menu1">
K>    <li><a href="#">Menu1</a></li>
K>    <li><a href="#">Menu2</a></li>
K>    <li><a href="#">Menu3</a></li>
K>    <li><a href="#">Menu4</a></li>
K>    <li><a href="#">Menu5</a></li>
K></ul>


K>Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???

var ul = document.getElementById('menu1');
        
    ul.chlildNodes[2].style = "";//что-то
Re: Javascript доступ к элементу
От: Centaur Россия  
Дата: 03.06.07 18:30
Оценка:
Здравствуйте, Kimosabe, Вы писали:

K>Есть список:

K>
<ul id="menu1">
K>    <li><a href="#">Menu1</a></li>
K>    <li><a href="#">Menu2</a></li>
K>    <li><a href="#">Menu3</a></li>
K>    <li><a href="#">Menu4</a></li>
K>    <li><a href="#">Menu5</a></li>
K></ul>


K>Как достучаться(получить доступ) например к третьему элементу к тегу A чтобы поменять ему стиль, например бэкграунд? это возможно???


На неправильный вопрос — бесполезные ответы.

Изменение стиля линка в меню обычно нужно не само по себе вдруг, а в обработчике какого-нибудь события. Например, onclick соответствующего линка. Нужна будет ссылка не на «третий элемент A», а на «тот элемент A, который ткнули». В обработчик события ссылка на элемент линка придёт через поле target или srcElement структуры event, а ссылка на event — через первый параметр функции-обработчика или через поле event объекта window.
Re[2]: Javascript доступ к элементу
От: sembel Fast Version Control System
Дата: 03.06.07 18:42
Оценка:
Здравствуйте, Centaur, Вы писали:

C>На неправильный вопрос — бесполезные ответы.


C>Изменение стиля линка в меню обычно нужно не само по себе вдруг, а в обработчике какого-нибудь события.


показать пример, когда оно само по себе нужно?
Re[3]: Javascript доступ к элементу
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.06.07 03:27
Оценка:
Здравствуйте, sembel, Вы писали:

S>показать пример, когда оно само по себе нужно?

да. Желательно также убедительно объяснить, как он продолжит работать после минимальных правок веб-дизайнером.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Javascript доступ к элементу
От: sembel Fast Version Control System
Дата: 04.06.07 04:42
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, sembel, Вы писали:


S>>показать пример, когда оно само по себе нужно?

S>да. Желательно также убедительно объяснить, как он продолжит работать после минимальных правок веб-дизайнером.

мне честно говоря не понравилось заявление Centaur. "На неправильный вопрос — бесполезные ответы."

Был задан конкретный вопрос, на который был дан конкретный ответ. Никто не спрашивал о правильной реализации меню.
Ответ анонима не считается, у него помимо ошибок, код споткнется на текстовых нодах в мозилле.

Мне не раз приходилось делать подобные штучки, когда из всего что я мог, это добавить свой js include и потом я должен был изменять состояние, поведение страницы. Там было еще хуже, не было ни каких IDs, нужно было цеплятся с помощью регулярных выражений к определенной ноде и потом добираться до нужной ноды.

На счет примера. Есть страничка, в которой подгружается контент с помощью аякса. Нужно подсветить соотвествуещее меню. Опа, нету onmouseover. Опять же замечу, я не утверждаю, что это правильная реализация. Мы говорим про возможность.

В моем ответе, в отличии от ответа анонима, даже если дизайнер добавит новые теги коллекция линков в <ul id="menu1">
останется таже самая.
Re[5]: Javascript доступ к элементу
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.06.07 05:09
Оценка:
Здравствуйте, sembel, Вы писали:
S>На счет примера. Есть страничка, в которой подгружается контент с помощью аякса. Нужно подсветить соотвествуещее меню. Опа, нету onmouseover.
У кого нету onmouseover?
S>Опять же замечу, я не утверждаю, что это правильная реализация. Мы говорим про возможность.
Не понял пример.
S>В моем ответе, в отличии от ответа анонима, даже если дизайнер добавит новые теги коллекция линков в <ul id="menu1"> останется таже самая.
Не вижу почти никакой разницы в твоем ответе и ответе анонима. Его ответ конечно похуже, но у вас обоих достаточно переставить местами menu3 и menu4 чтобы всё нафиг сломалось.

Про поиск нод регекспами: рекомендую ознакомиться с jQuery. Сэкономит массу нервов.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Javascript доступ к элементу
От: sembel Fast Version Control System
Дата: 04.06.07 05:28
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>На счет примера. Есть страничка, в которой подгружается контент с помощью аякса. Нужно подсветить соотвествуещее меню. Опа, нету onmouseover.

S>У кого нету onmouseover?
S>>Опять же замечу, я не утверждаю, что это правильная реализация. Мы говорим про возможность.
S>Не понял пример.

сорри, я имел виду onclick, но не важно, суть что это event обьекта <a href="#" onclick=menuclick(this) onmouseover=menuover(this)>
Например, юзер открыл страничку. Нажал, меню №2, потом №3. Соотвественно подгружался контент и подсвечивались элементы меню. На данном моменте, работает как говорил Centaur. Теперь юзер сделал рефрешь. Последнее состояние, я где то храню. Загрузил соотвествующий контент. Теперь осталось подсветить меню. Onmouse нету.


S>>В моем ответе, в отличии от ответа анонима, даже если дизайнер добавит новые теги коллекция линков в <ul id="menu1"> останется таже самая.

S>Не вижу почти никакой разницы в твоем ответе и ответе анонима. Его ответ конечно похуже, но у вас обоих достаточно переставить местами menu3 и menu4 чтобы всё нафиг сломалось.

Код анонима, как я сказал, даже если исправить ошибки, споткнется о текстовые ноды в мозилле, а также будут влиять любые минимальные изменения внесенные дизайнером.
В мозилле, в отличии от ИЕ, в DOMe участвуют также текстовые узлы. А это значит, что код анонима просто не будет работать.

ul.childNodes[2] в примере выше это не LI обьект, как хотелось, а текстовая нода. Все не работает. Даже без добавок дизайнера.


S>Про поиск нод регекспами: рекомендую ознакомиться с jQuery. Сэкономит массу нервов.

Спасибо не знаком с jQuery, но проблемы решаю и так
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.