вопрос по JS

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

вопрос по JS

Сообщение Ramzes » 21.10.2010 (Чт) 18:56

Все доброго времени суток.
есть вот такая структура

Код: Выделить всё
1   <input id="chk0" type="checkbox" value="some_value" checked="true">
2   <div style="display:none;">
3     <input id="chk1" type="checkbox" value="some_value" checked="true">
4   </div>



и такой JS код
Код: Выделить всё
var chks = document.getElementsByTagName("input");
for(i=0;i<chks.length;i++)
  chks[i].checked=false;



Так вот, с первого флажка (chk0) отметка снимается, а со второго нет, я так понимаю что это по тому, что он не видим.
пробовал и через атрибуты, все равно не получается.

ВОПРОС: как снять отметку с флажка, который находится вне зоны видимости?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: вопрос по JS

Сообщение Хакер » 21.10.2010 (Чт) 19:07

Вне зоны видимости чего?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: вопрос по JS

Сообщение FireFenix » 21.10.2010 (Чт) 19:51

Ramzes писал(а):как снять отметку с флажка, который находится вне зоны видимости?

Не правильно... Твой цикл обходит все указанные объекты DOM, а видимость - это лиж свойство объекта

Вот всё работает:
Код: Выделить всё
<script language="Javascript">
function all()
{
  var chks = document.getElementsByTagName('input');

  for(i = 0; i < chks.length; i++)
  {
    if (chks[i].type == 'checkbox')
    {
      chks[i].checked = false;
    }
  }
}

function showall()
{
  var divs = document.getElementsByTagName('div');

  for(i = 0; i < divs.length; i++)
  {
    if (divs[i].style.display == 'block')
    {
      divs[i].style.display = 'none';
    } else {
      divs[i].style.display = 'block';
    }
  }
}
</script>

<a href="javascript:all();">UnCheck All</a>
<br>
<a href="javascript:showall();">Show All</a>

<br>
<br>

<div>
  <input id="chk0" type="checkbox" value="some_value1" checked>
</div>
<div style="display:none;">
  <input id="chk1" type="checkbox" value="some_value2" checked>
</div>
<div style="display:none;">
  <input id="chk2" type="checkbox" value="some_value3" checked>
</div>

P.S. указывать в теге checked="true" не обязательно, достаточно просто checked
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: вопрос по JS

Сообщение Хакер » 21.10.2010 (Чт) 20:00

FireFenix писал(а):P.S. указывать в теге checked="true" не обязательно, достаточно просто checked

Ни то, ни то. В HTML нужно второе, в XHTML — checked="checked".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: вопрос по JS

Сообщение FireFenix » 21.10.2010 (Чт) 20:13

Хакер писал(а):
FireFenix писал(а):P.S. указывать в теге checked="true" не обязательно, достаточно просто checked

Ни то, ни то. В HTML нужно второе, в XHTML — checked="checked".

Или даже так... Но язык был не указан, а для HTML нужно только наличие свойства и его значение вроде как не играет (ну покрайнемерее ФФ ведёт себя так)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: вопрос по JS

Сообщение Antonariy » 21.10.2010 (Чт) 22:29

Но язык был не указан
Вообще-то был. У инпутов нет закрывающих слешей.

И вообще-то все и в первоначальном варианте работает по крайней мере в IE и Chrome.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46

    TopList