12

直到 Chrome 22.0,当我输入我的 javascript 代码时

console.debug($('.page'));

它曾经返回到我的 Google Chrome 控制台:

<div class="page"></div>

这是活的DOM 对象。我可以通过将其悬停在我的页面上轻松找到该对象。昨天我已经将我的 Chrome 浏览器更新到 23.0 版,现在相同的 js 代码返回类似

[<div>, selector: ".page", context: #document]

这是原始的js对象。我可以扩展它并读取它的属性,但是在页面上看不到的DOM 对象。

我尝试替换 console.debug console.log添加 $('.page').get()到 jQuery 选择器,但没有成功。

当我 console.debug($('.page'));直接写入 Chrome 控制台时,它看起来就像在 Chrome 22.0 中一样有趣。仅在从 js 代码调试时才会出现问题。

4

3 回答 3

1

从理论上讲,这可以从 DOM 数组中去除 jQuery 属性:

console.log(Array.prototype.slice.call($('.page')));

但是,当整理 DOM 节点数组时,开发工具栏将不再允许您从数组中浏览 DOM 节点(本机属性除外)。我知道解决这个问题的唯一方法是单独记录每个节点:

Array.prototype.slice.call($('.page')).forEach(function(elem) {
    console.log(elem);
});

或者简单地说:

$('.page').each(function(i, elem) {
    console.log(elem);
});
于 2012-11-08T10:03:18.797 回答
0

有时要调试,我也会测试“.html()”或 innerHtml 来调试一些即时 html 代码,但“大卫”方式也是我所做的。

于 2012-11-27T10:52:52.127 回答
-1

这似乎在版本 23.0.1271.91 中得到修复。

于 2012-11-29T05:08:50.233 回答