在Chrome和IE中记录元素的不同输出

时间:2019-06-25 13:35:06

标签: javascript html

当我在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>

1 个答案:

答案 0 :(得分:4)

浏览器日志记录发生在提供空闲时间时。表示对象可能已更改。这种行为在AngularJS之类的框架中尤其明显。

您可以尝试以下方法:

console.log(JSON.parse(JSON.stringify(target_el)))

或其他深层复制对象的方式。

Read more