【问题标题】:Chrome console debug is broken?Chrome 控制台调试坏了?
【发布时间】:2023-03-18 17:29:01
【问题描述】:

随着 Chrome 更新到 2.3 版,我遇到了以下问题。当 ik 调试类似的东西时

console.log($('canvas'))

我通常会在控制台中返回一些代码(在本例中为 html),我可以将其悬停在上面,因此该对象在 HTML 中突出显示。现在我明白了:

[<canvas>, <canvas>, <canvas>, prevObject: jQuery.fn.jQuery.init[1], context: #document, selector: "canvas"]

有没有可以改回来的设置,所以我在HTML页面中悬停得到正常的html?

【问题讨论】:

  • 它返回一个由canvas 元素组成的数组。要么为数组提供一个索引,要么在选择器中使用id 选择一个特定的索引。
  • 作为特定的作品; console.log($('canvas')[0]);例如给我我想要的东西: 这是可悬停的。但是当我这样做时 console.log($('#layer1'));我得到:[上下文:#document,选择器:“#layer2”]
  • 我今天也注意到了这个问题。控制台屏幕的左侧和顶部还会出现一个标尺。
  • 我发现这个link 详细介绍了一些更新。

标签: debugging google-chrome console inspector


【解决方案1】:

JQuery 是Array 的扩展,或者说javascript 的语言——JQuery 的原型是Array。因此,当您$('canvas')'ing 时,它需要一组文档元素。解决方案是调试元素本身,使用如下代码:

console.debug($('canvas')[0]); // or other index if there is more than one elements is collected

【讨论】:

  • 我认为这与 Javascript 的 Jquery 无关。今天早上一切正常,直到 Chrome 自动更新到版本 23.0.1271.64 (mac)。我曾经控制台记录每个 jquery、javascript 对象,因此它可以在控制台中访问和悬停。现在它对我来说已经坏了,还有其他人这个问题还是有可以恢复的设置?
  • 考虑使用Firebug(Firefox的扩展),它更高级、更成熟。试试看,它都是免费的;)
  • console.debug($(selector)[0]); 为我工作。现在,如果我想显示一个元素数组,我必须遍历它们,$.each($(selector), function() { console.log($(this)[0])' }) 而不是 console.log($(selector));。那好吧。只是需要注意的一点。比起 Firebug,我更喜欢 Chrome 开发者工具,因为您可以直接在工具中编辑 DOM 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多