Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не найходится элемент по getElementById (https://javascript.ru/forum/events/26690-ne-najjkhoditsya-ehlement-po-getelementbyid.html)

titans 18.03.2012 14:44

не найходится элемент по getElementById
 
Привет всем. У меня такой вопрос. Есть цикл. Который генерирует 100 div.
function gen()
{
document.write('<div class="hht'+prom+'" style="left:'+Math.floor(Math.random()*90)+'%;display:none;}"></div>');
prom++;
}
for (var i=0; i<count; i++)
gen();

генерация проходит успешно. Я хочу сделать матрицу. Т.е. 100 квадратиков зелёного цвета рандомно располагаются на одной линии и потомпо одному начинают спускаться. Так вот вопрос. Как мне обратится к определённому номеру div? Выше преведённый цикл создаёт дивы hht0 - hht99 . Я написал такую функцию:
function show(gf)
{
var s="hht"+gf;
var d=document.getElementById(s);
d.style.display=block;
}

Данная функция должна отображать блок с определённым номером. Допустим я в функцию передаю цифру 10. Переменная gh=10. Мне нужно , что бы getElementById взял div10 , но на это месте возникает ошибка. почему?

Kolyaj 18.03.2012 14:51

Вы создаёте дивы с class, а не с id.

titans 18.03.2012 15:08

Цитата:

Сообщение от Kolyaj (Сообщение 163817)
Вы создаёте дивы с class, а не с id.

ну да с class, а как это меняет JS код?

Kolyaj 18.03.2012 15:10

То есть вас не смущаете, что вы тегу задаёте class, а искать пытаетесь по id?

titans 18.03.2012 15:12

Попробовал так document.getElementByClass пишет ошибкку 'document.getElementByClass' is not a function

titans 18.03.2012 15:13

Цитата:

Сообщение от Kolyaj (Сообщение 163820)
То есть вас не смущаете, что вы тегу задаёте class, а искать пытаетесь по id?

Да нет, смущает. Просто я не знаю функцию, которая ищет по классам.

Kolyaj 18.03.2012 15:14

document.getElementsByClassName -- возвращает коллекцию элементов, есть не во всех браузерах.

titans 18.03.2012 15:23

Цитата:

Сообщение от Kolyaj (Сообщение 163823)
document.getElementsByClassName -- возвращает коллекцию элементов, есть не во всех браузерах.

Заработало, спасибище. А что делать, если пишет Undefined variable: block Чем ему блок не угодил. если писать так d.style.display="block"; то пишет ошибку Cannot convert 'd.style' to object

Rootpassword 18.03.2012 15:52

Цитата:

Сообщение от titans
Заработало, спасибище. А что делать, если пишет Undefined variable: block Чем ему блок не угодил. если писать так d.style.display="block"; то пишет ошибку Cannot convert 'd.style' to object

Это значит, что d.style у вас не существует как объект, но вы его пытаетесь использовать в объектной нотации. Выведите подробности про d-сами увидите, в частности nodeType посмотрите

titans 18.03.2012 16:13

Цитата:

Сообщение от Rootpassword (Сообщение 163827)
Это значит, что d.style у вас не существует как объект, но вы его пытаетесь использовать в объектной нотации. Выведите подробности про d-сами увидите, в частности nodeType посмотрите

alert(d.nodeType); выводит undefined. Значит не находит элемент. А как же его достать то...


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