imho.ws |
![]() |
![]() |
![]() |
# 1 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Объясните странность в работе JavaScript
Наткнулся сегодня на такое вот загадочное поведение кода:
Код:
<script type="text/javascript" language="JavaScript"> function requestUserName(inp, outp, state) { state.innerText = "123 " + inp.value; outp.innerText = "QWE " + inp.value; } </script> <body> <form> <input type="text" id="user_id"/> <input type="button" onclick="requestUserName(user_id, user_name, state);" value="Go"/> <hr/> <code> <div id="user_name"/> </code> <hr/> <code> <div id="state"/> </code> <hr/> </form> </body> Но, если заменить деларацию div на Код:
<div id="user_name"></div> ... <div id="state"></div> Вопрос, собственно - почему? Разве короткая форма тэга не равна полной пустой? Всю жизнь был уверен, что запись Код:
<div id="user_name"></div> Код:
<div id="user_name"/>
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 3 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
да я специально привел полный код (благо, он короткий), чтоб можно было посмотреть вживую
![]() при первом нажатии отображается только outp блок, но других ошибок не выдает при втором - пишет 'state' is undefined добавлено через 1 минуту браузер - IE 6, забыл указать
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 4 |
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
У старого ослика (да и у нового) есть известная проблема с односложными тегами, например он скрипты не загружает если объявлены как <script src="" />
В остальном, к элементам нужно обращаться через document.getElementById, а вместо innerText использовать innerHTML. |
![]() |
![]() |
# 5 | ||
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
даже нигде не наталкивался на упоминание о такой особенности Цитата:
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
||
![]() |
![]() |
# 6 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А какой DOCTYPE документа? На сколько я понимаю вариант без закрывающего тега правильно работает гарантированно только в xhtml, о чем кстати валидатор W3C честно сыпет варнингами, на сколько я помню.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |