Вход

Просмотр полной версии : Изменение цвета ссылки.


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, вот здесь же надо передать параметр i)">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
просто я хочу это реализовать на 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
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
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, и при этом каждый раз делать одно и то же - писать такое надо уметь, да...

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

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

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