Автор Тема: выбор по ID элемента  (Прочитано 7788 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« : 26 Июля 2006, 13:30:10 »
сразу предупрежу, что в жабаскрипте я почти нулек))

итак суть вопроса:
есть три слоя на странице:

<div id="div1">Слой 1</div>
<
div id="div2">Слой 2</div>
<
div id="div3">Слой 3</div>

есть простенькие ссылки вида:

<a href="#" onClick="onoff(\'div1\'); return false">ссылка1</a>
и т.д...


и есть такая простенькая функция:

function onoff (Mytarget)
{
if (
document.getElementById)
{
target=document.getElementById(Mytarget);
alert(target);}
}


но этот alert выдает [object]
то есть в переменную target не пердается значение слоя, а нужно, чтобы передавалось. Как поступить?
Пространные размышления об ИТ и все что вокруг

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
выбор по ID элемента
« Ответ #1 : 26 Июля 2006, 14:36:01 »
Greg
"Значение слоя" и есть [object].

Это искал? :)

function onoff (Mytarget)
{
  if (document.getElementById) {
    target=document.getElementById(Mytarget);
    if(target.style.display!=\'none\') {
      target.style.display = \'none\';
    } else {
      target.style.display = \'block\';
    }
  }
}
LJ: Backslashed life (rss)

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
выбор по ID элемента
« Ответ #2 : 26 Июля 2006, 14:38:33 »
А что такое значение слоя, я так понимаю это просто код внутри тегов, тогда можно например target.innerHTML
« Последнее редактирование: 26 Июля 2006, 14:44:06 от html_coder »

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #3 : 26 Июля 2006, 14:44:54 »
CGVictor
нет, такой кодец у меня уже есть)))
я его немного хочу переделать и получить нечто вроде переключения слоев: если один показан, остальные спрятаны. "значение слоя" - это его ИД (очевидно неправильно выразился.

то есть вот у меня сейчас примерно такой код (по голове за идиотский код не бить :) ):


function onoff (Mytarget)
{
if (document.getElementById)
  {target=document.getElementById(Mytarget);
  if (target==\'defolt\')
    {
    alert(target);
    document.work.style.display="none";
    document.need.style.display="none";
    document.defolt.style.display="";
    }

....<несколько таких похожих блоков>
  }
}
Пространные размышления об ИТ и все что вокруг

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
выбор по ID элемента
« Ответ #4 : 26 Июля 2006, 14:46:27 »
Хотя CGVictor ближе к истине...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #5 : 26 Июля 2006, 15:11:43 »
так... alert уже выдает ИД слоя, надо было просто сделать вот так:

if (target.id==\'defolt\')
{
alert (target.id);
}
это сокращенный вариант.

нов вот, что касается выбора и установки видимости слоев, то опять же тормоз. вот здесь:

document
.work.style.display="none";
    
document.need.style.display="none";
    
document.defolt.style.display="";
Пространные размышления об ИТ и все что вокруг

Оффлайн avb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
выбор по ID элемента
« Ответ #6 : 26 Июля 2006, 15:17:47 »
id слоя - document.getElementById(Mytarget).id

Оффлайн avb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
выбор по ID элемента
« Ответ #7 : 26 Июля 2006, 15:18:16 »
упс, не успел...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #8 : 26 Июля 2006, 15:20:58 »
avb
а что по поводу доступа к свойству видимости слоя? вроде бы условие выполняется, но изменение свойств не происходит: что не так, не могу увидеть
Пространные размышления об ИТ и все что вокруг

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #9 : 26 Июля 2006, 15:31:12 »
о! все получилось нужно было обращаться так:
work.style.display="none";
т.е без "document."
Пространные размышления об ИТ и все что вокруг

Оффлайн avb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
выбор по ID элемента
« Ответ #10 : 26 Июля 2006, 15:32:33 »
В target у тебя ссылка на объект. Поэтому чтобы поменять ему стиль делай :
target.style.display="none";

Тебе наверное лучше будет иметь массив объектов (не id, а именно объектов), то есть массив с элементами document.getElementById(\'Ид дива\')
Затем для каждого element из массива проверяешь:
если Mytarget == element.id, то display =""
в противном случае - display = "none"

А вообще, у тебя похоже в каждый момент будет отображаться только один див. Продумай возможность его запоминания, чтобы при каждом клике не перебирать весь массив.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #11 : 26 Июля 2006, 16:02:18 »
в догонку вопрос: как изменить свойство background-color какого-либо элемента?

то есть видимостью мы управляем так:
some_id.style.display="none/block";
но вариант с
some_id.style.background-color="#eaeaea";
например не проходит... как быть?
Пространные размышления об ИТ и все что вокруг

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
выбор по ID элемента
« Ответ #12 : 26 Июля 2006, 16:03:59 »
Greg
пологаю не помешает.
The display declaration
[off]Безработный[/off]

Оффлайн avb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
выбор по ID элемента
« Ответ #13 : 26 Июля 2006, 16:06:41 »
document.getElementById("elementID").style.backgroundColor

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
выбор по ID элемента
« Ответ #14 : 26 Июля 2006, 16:09:46 »
avb
отлично! большое спасибо!

думаю тему пока не нужно закрывать, может ещё вопросы появятся

for_i_0
:) и тебе спасибо, но спецификация у меня есть)))
Пространные размышления об ИТ и все что вокруг

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28