Прошу помочь с кодом HTML+JavaScript

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Krait
Сообщения: 2
Зарегистрирован: 13 дек 2004, 20:13
Контактная информация:

выставляю ид в теле html <a id="mc1" ... </a>, гружу скрипт <body onload="startfilter();">, в нем хочу организовать цикл из буквы и меняющейся цифры
... thisobj=mc+i
thisobj.style.filter= ...
вот тут и застрял, как бы я не менял thisobj, ничего не получается, только если явно указать thisobj=mc1 , вот варианты, что я пробовал:
thisobj=mc+1
thisobj="mc"+"1"
thisobj=mc+"1"
thisobj=typeof("mc"+1) по разному
прошу помощи

ошибка такая: "thisobj.style" - есть null или не яв-ся объектом
Я так понимаю объектная переменная преобразуется в строковую и нехочет работать, непонятно
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

А выложи весь скрипт так будет понятней и наглядней.
По идеи здесь надо объявить переменную либо стиль написать...
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Код: Выделить всё

var thisobj = document.getElementById("mc" +"1"); 
Даже самый дурацкий замысел можно воплотить мастерски
Serafina
Сообщения: 11
Зарегистрирован: 16 ноя 2004, 22:13
Откуда: Питер
Контактная информация:

Или так:

Код: Выделить всё

var thisobj = document.all["mc" +i];
Krait
Сообщения: 2
Зарегистрирован: 13 дек 2004, 20:13
Контактная информация:

:o ops: Цель такая, хочу чтобы скрипт работал для нескольких текстовых строк, убавляя и уменьшая толщину окантовки, как бы мерцая. Выставляю ID в теле HTML всем строкам по формату текст+цифра, пример: mc1, mc2...
Хочу организовать цикл mc+i, где i - порядковый номер, при эсперименте использую следующий работающий код:
...
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var i_strength=0
var max_strength=2 // длина окантовки
var shadowcolor="red" //цвет окантовки
var timer
var i // порядковый номер строки
var speed=200
var thisobj
function stopfilter(thisdiv){
if (document.all) {
clearTimeout(timer)
thisobj=thisdiv
thisobj.style.filter=" "
}
}

function startfilter(thisdiv){
if (document.all) {
clearTimeout(timer)
morefilter()
}
}

function morefilter(){ //пока пробую с 2-я строчками
if (i_strength <=max_strength) {
thisobj=mc1 // тут экспериментально я пытаюсь назначить иное имя с цифрой и не получается (напр., mc+1)
thisobj.style.filter="glow(color="+shadowcolor+", strength="+i_strength+")"
thisobj=mc2
thisobj.style.filter="glow(color="+shadowcolor+", strength="+i_strength+")"
i_strength++
timer = setTimeout("morefilter()",speed)
}
else {
clearTimeout(timer)
lessfilter() // тотже скрипт, но окантовка в обратном направлении
}
}
...

Очень прошу по подробнее...
Ответить