Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Переменные в replace (https://javascript.ru/forum/events/25281-peremennye-v-replace.html)

alexandr_v-vich 31.01.2012 16:16

Переменные в replace
 
Необходимо заменить ClassName:
Есть код
01	<script>
02	var i=0;
03	function light() {  //ссылка, реагирующая на onMouseOver
04	 if (i<4) {
05	    document.getElementsByTagName('a')[1].className += " redtext" + i;
06	    i += 1;
07	    var t = setTimeout("light()", 50);
08	    }
09	}
10	 
11	function nolight() {   //ссылка(она же), реагирующая на onMouseOut
12	 if (i>0) {
13	    document.getElementsByTagName('a')[1].className.replace(/"redtext" + i/, " ");
14	    i -= 1;
15	    var t = setTimeout("nolight()", 50);
16	    }
17	}
18	 
19	</script>

redtext0/1/2/3 - классы стилей с разным text-shadow.
Так вот, добавляется всё отлично, а с "replace" возникли проблемы. Как я понял "i" там не читается как переменная. Что делать, подскажите пожалуйста.

Kolyaj 31.01.2012 16:27

replace не изменяет строку.

https://github.com/Kolyaj/CrossJS/bl...ce/dom.js#L194

alexandr_v-vich 31.01.2012 16:36

Я пока новичок в этом.
Не сосвем понял ответ - плохо разбираюсь в регулярных выражениях.
Небольшое дополнение: у ссылки(елемента) есть ещё один класс, который вообще не надо трогать.
Если не сложно прокомментируйте, пожалуйста, ссылку выше.

Kolyaj 31.01.2012 16:45

Там универсальная функция для удаления css-класса у элемента. Чуть выше там же функция для добавления класса. Используйте лучше их, если плохо разбираетесь.

alexandr_v-vich 31.01.2012 16:51

Нет, вопрос найти скрипт и вставить себе куда нужно не стоит (Вообщем никогда не стоял)
Задача - разобраться на примерах в чём дело..
Просто одной литературы как правило мало бывает.

ну хотя бы вот вторая строка. Как её понять?
el = $(el);

Kolyaj 31.01.2012 16:58

Цитата:

Сообщение от alexandr_v-vich
Задача - разобраться на примерах в чём дело..

Примеры дал, можно разбираться.

Цитата:

Сообщение от alexandr_v-vich
el = $(el);

В самом начале файла есть описание функции $.

Цитата:

Сообщение от nasqad
обогащение элемента

Никакого обогащения :)

рони 31.01.2012 17:22

alexandr_v-vich,
Вы ничему не присваиваите изменённый класс ...
Вариант ...
document.getElementsByTagName('a')[1].className = document.getElementsByTagName('a')[1].className.replace("redtext" + i, " ");

alexandr_v-vich 31.01.2012 17:30

рони,
Огромное спасибо! Опять невнимательность...
По началу просто стояло как "-=", потом понял, что нужно через replace, а про присваивание забыл, да.
Спасибо, работает)


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