【问题标题】:Value was evaluated just now with console.log on JavaScript object刚才在 JavaScript 对象上使用 console.log 评估了值
【发布时间】:2017-06-05 06:16:39
【问题描述】:

当我使用每个循环在 HTML 中打印对象时,我只得到了对象的一半内容,但是当我使用 console.log 打印并按下那个小三角形时,我得到了完整的对象和 i 显示在该对象附近,当我将鼠标悬停时,它表示刚刚评估了值,如下图所示,

当我在 HTML 中打印相同的对象时,它看起来像这样,

7.33--Some Name
7.08--Some Name
7.83--Some Name

其实object一共包含5个元素如上图所示, 用于打印对象 HTML 的代码,

for (var key in obj){
    $("p").append(key+"--"+obj[key][0]+"<br>");
}

【问题讨论】:

  • 请在结果旁边包含您的代码
  • 1) 显示您的代码。 2) console 输出live 数据。在文档中显示对象的内容后,您可能会向对象添加更多数据。
  • 你试过用console.dir代替console.log吗?
  • console.log(JSON.parse(JSON.stringify(object))) 也许 - 只要它是 JSONable :p
  • print full object in html - 这是什么意思? html与控制台有什么关系? (答案:没有)

标签: javascript jquery html


【解决方案1】:

通过console.log 检查对象以asynchronous 的方式进行。

对对象的引用被同步传递给控制台,但在展开之前它不会显示属性。如果对象在控制台中检查之前已被修改,则显示的数据将具有更新的值。 Chrome 控制台在一个框中显示了一个小 i,上面写着刚刚评估了下面的值

为了在控制台中完全打印对象,您可以像这样对它进行字符串化和记录

console.log(JSON.stringify(obj));

【讨论】:

  • 如何在 html 中打印,我试过像 x=JSON.stringify(obj) 一样使用 x 作为对象,但那不起作用。
  • 在 obj 上使用 JSON.stringify 后,您的 obj 将被转换为字符串,因此 obj.keyName 之类的东西将不起作用。在 HTML 中,您可以直接执行 obj.keyName 而无需字符串化
  • 那是我不能做的,在访问对象之前必须对其进行评估,这只能通过点击那个小三角箭头在开发人员工具中完成
  • 所以如果我理解正确的话,你需要将 obj 值添加到 HTML,为什么你需要 developerTool。此外,如果您直接打印 console.log(obj.keyName) 那么它将正常工作,即。带有单独的键名
  • 开发工具用于检查,console.log(obj) 在评估之前不会显示完整对象,这就是为什么当我使用 html 中的每个循环打印它时,我只能得到一半对象我是否在 html 中获得完整的对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 2019-01-31
  • 2012-11-20
  • 1970-01-01
相关资源
最近更新 更多