Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение цвета ссылки. (https://javascript.ru/forum/misc/23224-izmenenie-cveta-ssylki.html)

bpystep 16.11.2011 20:14

Изменение цвета ссылки.
 
пробую делать так:

<a name="ula" href="#" onclick="openMenu(this)" onMouseOver="ChangeFon(this.name)">Menu</a>

Код:

function ChangeFon(node) {
                document.all.node.style.color="blue";
        }

но он ищет "node" как название объекта, а не как переменную.

пробовал и так:

Код:

function ChangeFon(node) {
                document.GetElementByName(node).color="blue";
        }

никакого эффекта. в чем я недопонимаю?

Aetae 16.11.2011 20:17

document.getElementsByName(node)[0]

bpystep 16.11.2011 20:23

ну с грамматическими ошибками понятно, а вот что дает [0]?
все, работает, спасибо.

з.ы. мало опыта, только начинаю.

Aetae 16.11.2011 20:28

document.getElementsByName(node)
Возвращает соответственно не Element, а Elements, т.е. коллекцию элементов с таким именем. 0ой индекс возвращает само собой самый первый.
Вообще, судя по вопросу, вы вообще ничего не знаете. Рекомендую прочитать хоть какую-нить книжечку по js даже саму тоненькую. Главное чтоб год выпуска не 1997 какой-нить.)

bpystep 16.11.2011 20:44

я так и понял что это индекс массива элементов (коллекция элементов), тогда возникает вопрос: как мне передать в функцию этот самый индекс?Если у меня массив из n элементов.

з.ы. книжки обязательно прочитаю.

Aetae 16.11.2011 21:08

function ChangeFon(node,i) {
  document.getElementsByName(node)[i].style.color="blue";
}

bpystep 16.11.2011 21:17

нет, это то понятно.
мне непонятно как передать этот индекс в функцию
т.е.:
<a name="ula" href="#" onMouseOver="ChangeFon(this.name, [B]вот здесь же надо передать параметр i[/B])">Menu</a>

ksa 16.11.2011 21:22

bpystep, какая жуть!

<style>
a:hover {
   color: red;
}
</style>
<a href="#">Menu</a>

Вот и все.

bpystep 16.11.2011 21:27

ksa,
я знаю как это сделать с помощью css, просто я хочу это реализовать на javascript, для последующего изучения данного языка

ksa 16.11.2011 21:55

Цитата:

Сообщение от bpystep
просто я хочу это реализовать на javascript

Тогда так...

<a name="ula" href="#" onmouseover="this.style.color='red'">Menu</a>


Или так...

<script type="text/javascript">
function ChangeFon(Obj) { 
  Obj.style.color="red"; 
}
</script>
<a href="#" onmouseover="ChangeFon(this)">Menu</a>

ksa 16.11.2011 22:01

Цитата:

Сообщение от bpystep
для последующего изучения данного языка

Как ты чему-то научишся, если ты постоянно спрашиваешь как сделать букварские задачки? Ведь про это написано в любом учебнике...

bpystep 16.11.2011 22:02

а через функцию? так как делали выше... можно как нибудь передать индекс в функцию?

<a name="ula" href="#" onMouseOver="ChangeFon(this.name, что вот здесь надо передать?)">Menu</a>


function ChangeFon(node,i) { 
  document.getElementsByName(node)[i].style.color="blue"; 
}

9xakep 16.11.2011 22:10

<a name="ula" href="#" onMouseOver="ChangeFon(this.name, '0')">Menu</a>
<script>
function ChangeFon(node,i) {  
  document.getElementsByName(node)[i].style.color="red";  //тут было blue
}
</script>

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

bpystep 17.11.2011 00:13

думаете я сам не догадываюсь что надо передать 0? а как быть с другими елементами к ним тоже передавать какието числа, чтоб потом было в функции вот так:
function ChangeFon(node,index) { 
	if (index == 0) document.getElementsByName(node)[index].style.color="blue";
if (index == 1) document.getElementsByName(node)[index].style.color="blue";
if (index == 2) document.getElementsByName(node)[index].style.color="blue";
}

и т.д.? ну это же бред господа.
можно ли передать в функцию именно индекс этого элемента или нет? как-нибудь то можно по-любой.
а по поводу цвета, это лишь маленький кусок кода, поэтому там стоит синий, но это не принципиально.

trikadin 17.11.2011 00:35

bpystep, дурной, штоле? Передавай не порядковый номер, а this. И будет тебе счастье.

bpystep 17.11.2011 00:42

trikadin,
мб по внимательнее почитаешь, что я там написал.
спасибо, именно это мне и надо было. this овтетил на вопрос.

з.ы. неужели сразу нельзя было написать.

trikadin 17.11.2011 00:52

Цитата:

Сообщение от bpystep
trikadin,
мб по внимательнее почитаешь, что я там написал.

А, собственно, что я не так прочитал? Кстати, о написаннном: такого, извиняюсь, редкостного говнокода я давно не видел. Вот это вот что?
function ChangeFon(node,index) {
    if (index == 0) document.getElementsByName(node)[index].style.color="blue";
    if (index == 1) document.getElementsByName(node)[index].style.color="blue";
    if (index == 2) document.getElementsByName(node)[index].style.color="blue";
}

Вы это под чем писали? Я тоже хочу. Три раза проверять, чему равно значение index, и при этом каждый раз делать одно и то же - писать такое надо уметь, да...

Цитата:

Сообщение от bpystep
спасибо, именно это мне и надо было. this овтетил на вопрос.

з.ы. неужели сразу нельзя было написать.

А вам это ksa в 10-м сообщении написал. Ваша невнимательность вам не на руку.

bpystep 18.11.2011 18:41

ну я же там и написал что это бред, просто привел этот бред а примере...
извиняюсь, да, ksa это написал, но открылась 2 старница поста, поэтому и пропустил.


Часовой пояс GMT +3, время: 13:57.