Javascript jQuery选择器不在chrome控制台中
直到Chrome22.0,当我输入javascript代码时 它用于返回到我的Google Chrome控制台:Javascript jQuery选择器不在chrome控制台中,javascript,google-chrome,jquery-selectors,google-chrome-devtools,Javascript,Google Chrome,Jquery Selectors,Google Chrome Devtools,直到Chrome22.0,当我输入javascript代码时 它用于返回到我的Google Chrome控制台: 这是活的DOM对象。我可以通过悬停在页面上轻松找到该对象。 昨天我将我的Chrome浏览器更新到23.0版,现在相同的js代码返回如下内容 [,选择器:“.page”,上下文:#文档] 这是原始js对象。我可以展开它并读取它的属性,但在页面上看不到任何活动的DOM对象 我试图用console.log替换console.debug,或者将$('.page').get()添加
这是活的DOM对象。我可以通过悬停在页面上轻松找到该对象。
昨天我将我的Chrome浏览器更新到23.0版,现在相同的js代码返回如下内容
[,选择器:“.page”,上下文:#文档]
这是原始js对象。我可以展开它并读取它的属性,但在页面上看不到任何活动的DOM对象
我试图用console.log
替换console.debug
,或者将$('.page').get()添加到jQuery选择器,但没有成功
当我编写console.debug($('.page'))时,还有什么有趣的事情代码>直接进入Chrome控制台,与Chrome 22.0类似。只有在从js代码调试时才会出现问题。理论上,这可以从DOM数组中去除jQuery属性:
console.log(Array.prototype.slice.call($('.page')));
但是,在控制台DOM节点数组时,dev工具栏将不再允许您从数组中浏览DOM节点(本机属性除外)。我知道解决这个问题的唯一方法是单独记录每个节点:
Array.prototype.slice.call($('.page')).forEach(function(elem) {
console.log(elem);
});
或者简单地说:
$('.page').each(function(i, elem) {
console.log(elem);
});
有时为了调试,我还测试了“.html()”或innerHtml来调试一些动态html代码,但“David”方式也是我所做的。这似乎在23.0.1271.91版中得到了修复。请尝试console.log($('.page')[0])
它适合我@23.0.1271.64,谢谢。它可以工作,但当然只返回第一个匹配的元素。早些时候,我可以得到一个活体数组。如果你在chromes开发者控制台中输入选择器,它应该像在早期版本中一样显示所有元素。我还没有找到另一种输出元素数组的方法。+1,这是快速调试jQuery的杀手。我升级了@supernova,但请注意,这只是一种解决方法,不是修复方法。我使用的是23.0.1271.91,但仍然可以看到这种行为。@naller-wird。F12->$(“#内容”)
在这个页面上对我来说很好。关于说version23.0.1271.91m
我运行的是version23.0.1271.95,当我在这个页面上键入$('#content')时,我得到的是[>…],而不是预期的…..使用这个想法,可以做一些类似console.logDOM=function(x){$(x).each(function(I,elem){console.log(elem);}
添加一个日志记录方法,该方法按照OP希望的方式工作。
console.log(Array.prototype.slice.call($('.page')));
Array.prototype.slice.call($('.page')).forEach(function(elem) {
console.log(elem);
});
$('.page').each(function(i, elem) {
console.log(elem);
});