Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не могу добраться до объекта


Автор: vintyara 2.9.2007, 23:17
Проблему опишу в оооочень общих чертах. Есть страничка. Есть на ней несколько картинок (img). Есть некий JS. JS во время работы должен дёргать ту или иную картинку. Обращается он к ним примерно так: 

document.images[число].onmouseout(); (это пример).

А на самой картинке уже уже прописано дейтсвие, которое будет выполнятся при onmouseout().

И вот, к сожалению, получилось так, что нужно мне все картинки засунуть в некую обвёртку, и дёргать их через неё. В качестве обвёртки выбрал <span>. Однако через него никак не могу добраться до картинки :(
Пробовал примерно так:

document.spans[0].elements[0].onmouseover();
document.spans[0].onmouseover();

Учитывая, что в JS я вообще ламир, может и пробовал я полный бред smile Подскажите как надо !

Добавлено через 4 минуты и 30 секунд
ЗЫ getElementById не предлагать ! Мне нужен полный путь руками задавть :(

Автор: Zeroglif 2.9.2007, 23:56
спан.childNodes[индекс]

Автор: vintyara 3.9.2007, 08:27
Zeroglif, у меня не одна картинка. Соответственно будет не один спан с картинкой внутри. спан.chil... <- это точно правильно ?
Потому что не работает :( Пишет - 

span is not defined (это при onclick="span.childNodes[0].onmouseover();")

Ещё пробовал так - 

document.span has no properties (onclick="document.span.childNodes[0].onmouseover();")
document.span has no properties (onclick="document.spans[0].childNodes[0].onmouseover();")



Автор: Zeroglif 3.9.2007, 10:07
Цитата(Zeroglif @  3.9.2007,  00:56 Найти цитируемый пост)
спан.childNodes[индекс] 


Ну, спан же тебе нужно как-то брать, например, document.getElementsByTagName('span')[индекс], это азы, проще в доку заглянуть, чем в форум слать вопрос.

Автор: ranger_www 3.9.2007, 10:09
Дело в том, что когда ты используешь document.span такого элемента действительно нет. Потому что span есть только в таблице!!!

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

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript" language="JScript">
function test()
{
    alert(document.getElementsByName("t").length);
}
</script>
</head>

<body onload="test();">

<span id="t1" name="t">test 1</span>
<span id="t2" name="t">test 2</span>

</body>
</html>

Автор: vintyara 3.9.2007, 10:28
проблема в том, что фишки, подобные этим - getElementsByName("t") - не работают. я пешу код под нестандартный браузер. он, собака такая, мало чего понимает в JS, и даже в CSS =(

Автор: dsCode 9.9.2007, 16:39
vintyara

Цитата

проблема в том, что фишки, подобные этим - getElementsByName("t") - не работают. я пешу код под нестандартный браузер. он, собака такая, мало чего понимает в JS, и даже в CSS =(

Что за браузер такой? =)

По поводу проблемы: проще задать каждому изображению id и брать getElementById("нужный_id"). И для span'ов так же.

Автор: SelenIT 9.9.2007, 16:55
Name в этой задаче точно лишний (если уж что и задавать, так вправду id). vintyara, неужели getElementsByTagName (как Zeroglif предлагал) тоже не работает?


Цитата(ranger_www @  3.9.2007,  10:09 Найти цитируемый пост)
Потому что span есть только в таблице!!!

ranger_www, судя по этой фразе, Вы не только в JS, но даже в HTML плаваете, так что нечего тут людей сбивать с панталыку. Еще одно подобное "авторитетное заявление" - точно от кого-нибудь минус получите... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)