Наткнулся сегодня на такое вот загадочное поведение кода:
Код:
<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 на
Код:
<div id="user_name"></div>
...
<div id="state"></div>
все работает замечательно.
Вопрос, собственно - почему? Разве короткая форма тэга не равна полной пустой? Всю жизнь был уверен, что запись
Код:
<div id="user_name"></div>
полностью эквивалентна
Код:
<div id="user_name"/>
Может кто-то просветить на этот счет?