Показать сообщение отдельно
  #1 (permalink)  
Старый 25.01.2015, 14:50
Новичок на форуме
Отправить личное сообщение для Ымя Посмотреть профиль Найти все сообщения от Ымя
 
Регистрация: 25.01.2015
Сообщений: 3

Неожидаемый вывод в console.log объекта html
Всем привет.
Обнаружил следующую странность при выводе объекта в консоль (проверял в FF35.0 и Chrome 40.0.2214.91 m).
На странице html есть элемент:
<div id="test" class="first">Тест</div>

Если выполнять следующий js-код:
var tt = document.getElementById('test');
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);
tt.className = 'second';
console.log('Тест: %s', tt.className);
console.log('Тест: %o', tt);

то в консоле получаем :
"Тест: first"
"Тест: " <div class="second" id="test"> 
"Тест: second"
"Тест: " <div class="second" id="test">

Возникает вопрос: каким образом в консоль выводится
"Тест: " <div class="second" id="test">
с значением параметра class="second", если замена значения этого параметра происходит после вывода в консоль?

При этом, если выполнять ранее указанный js-код в отладчике пошагово или с задержкой перед сменой значения параметра, например, используя alert
var tt = document.getElementById('test');
	console.log('Тест: %s', tt.className);
	console.log('Тест: %o', tt);
	alert('ok');
	tt.className = 'second';
	console.log('Тест: %s', tt.className);
	console.log('Тест: %o', tt);

то в консоли получаем ожидаемый (правильный) результат:
"Тест: first"
"Тест: " <div class="first" id="test">
"Тест: second"
"Тест: " <div class="second" id="test">


В чем может быть проблема?
Ответить с цитированием