当我在Internet Explorer中运行以下脚本时,console.log(target_el)
的输出符合预期:
<div class="hidden"></div>
但是,在Chrome中,输出为:
<div class="visible"></div>
即使更有趣,Chrome中console.log(target_el, target_el.className)
的输出也会是:
<div class="visible"></div> "hidden"
为什么会这样?
function change_el_class(target_el, target_class) {
console.log(target_el)
target_el.className = target_class
}
let el = document.getElementsByClassName('hidden')[0]
change_el_class(el, 'visible')
<div class="hidden"></div>
答案 0 :(得分:4)
浏览器日志记录发生在提供空闲时间时。表示对象可能已更改。这种行为在AngularJS之类的框架中尤其明显。
您可以尝试以下方法:
console.log(JSON.parse(JSON.stringify(target_el)))
或其他深层复制对象的方式。