Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает код (маленький) из-за объявления переменной (https://javascript.ru/forum/misc/60446-ne-rabotaet-kod-malenkijj-iz-za-obyavleniya-peremennojj.html)

возжаждавший 30.12.2015 14:30

Не работает код (маленький) из-за объявления переменной
 
Друзья! Код демонстрационный, поэтому переменная items нигде не используется.

<html>
<script language="javascript">

function clck()
{
 var items = document.all.tags("b");
 alert ('эта надпись выведется только если закомментить строчку выше, почему? Объявление items вполне себе корректно!'); 
}

</script>

  <body>
    <b onclick="clck()">кликни меня</b>
  </body>
</html>


Почему alert срабатывает только если закомментить объявление items? Спасибо, кто откликнется.

ruslan_mart 30.12.2015 14:34

document.getElementsByTagName('b')

возжаждавший 30.12.2015 14:51

Спасибо, а нельзя ли с моим кодом разобраться? По ссылям ниже синтаксис именно как у меня

http://javascriptpro.narod.ru/document.htm
http://bourabai.ru/dhtml/07.htm
http://xpoint.ru/forums/programming/...ad/37836.xhtml
И т. д.

Не могут же все эти авторы писать явное фуфло, извините за выражение.

Vlasenko Fedor 30.12.2015 15:01

переместите скрипт ниже html разметки или оберните в функцию
window.onload = function(){
//здесь ваш код
};

ruslan_mart 30.12.2015 15:20

возжаждавший, во первых, document.all устарел. Во вторых, метода tags не существует:

alert(document.all.tags) //undefined


поэтому и ошибка.

Цитата:

Сообщение от возжаждавший
Не могут же все эти авторы писать явное фуфло, извините за выражение.

Этим статьям лет 100. Советую лучше читать более современные учебники.

возжаждавший 30.12.2015 15:25

Что-то он не так не выходит, ни эдак:

<html>
  <body>
    <b onclick="clck()">кликни меня</b>
  </body>
</html>


<script language="javascript">

function clck()
{
 var items = document.all.tags("b");
 alert ('эта надпись выведется только если закомментить строчку выше, почему? Объявление items вполне себе корректно!'); 
}

</script>



<html>
<script language="javascript">

window.onload = function clck()
{
 var items = document.all.tags("b");
 alert ('эта надпись выведется только если закомментить строчку выше, почему? Объявление items вполне себе корректно!'); 
}

</script>

  <body>
    <b onclick="clck()">кликни меня</b>
  </body>
</html>

возжаждавший 30.12.2015 15:27

Цитата:

Сообщение от Ruslan_xDD (Сообщение 401978)
document.all устарел. Во вторых, метода tags не существует:

А нам учитель говорит что есть. Правда лекции нескольколетней давности.

ruslan_mart 30.12.2015 16:49

Цитата:

Сообщение от возжаждавший
А нам учитель говорит что есть. Правда лекции нескольколетней давности.

Мало ли что учитель говорит, запустите сами скрипт в консоле и посмотрите на результат.

document.all устарел, и его методы тоже, некоторые вообще удалены (тот же tags), поэтому ошибка.



<html>
<script type="text/javascript">

function clck()
{
 var items = document.getElementsByTagName("b");
 alert ('эта надпись выведется только если закомментить строчку выше, почему? Объявление items вполне себе корректно!'); 
}

</script>

  <body>
    <b onclick="clck()">кликни меня</b>
  </body>
</html>

возжаждавший 30.12.2015 18:55

А почему так быстро устаревает? За три (!) года конструкция document.all.tags стала неправильной, этак надумаешь программировать, так за стандартом не угнаться!

callbackhell 30.12.2015 19:15

Цитата:

Сообщение от возжаждавший
А почему так быстро устаревает? За три (!) года конструкция document.all.tags стала неправильной, этак надумаешь программировать, так за стандартом не угнаться!

Потому что в наше время дизайном языков и API занимаются исключительно долбо*бы. С js еще не самая худшя ситуация, в пистонах за такое время версия языка успевает устареть. Учись хорошо, чтобы *правильно* проектировать языки.


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