14

当我控制台记录一个 jquery 对象时,例如。

var s = $("#item");
console.log(s);

我得到这样的东西

[div#item, context: document, selector: "#item", jquery: "1.9.1", constructor: function, init: function…]

我记得以前(大约一个月前),我会得到类似的东西:

 [<div id="item">pas</div>]

这是 Chrome 本身的变化吗?还是jquery发生了变化?或者我实际上做了一些事情来使输出看起来不同

我发现第二个输出更容易阅读,我可以将鼠标悬停在它上面并在页面上标记它。现在我得到太多信息,很难阅读

4

7 回答 7

1

我认为您注意到的是在控制台中评估 jQuery 对象和使用console.log(). 使用 David Thomas 的小提琴console.log,在语句上设置断点。当它在断点处停止时,$s在控制台中输入,你会看到

[<div id="item">pas</div>]

然后继续,您将看到由 打印的详细对象console.log()

我不太确定 jQuery 或 Chrome 在做什么会导致这种差异。键入时的输出$s似乎是$s.toArray(), whileconsole.log()显示真正的 jQuery 对象的结果。

更多证据表明这不是新行为——我刚刚链接了 11 月的一个重复问题。

于 2013-06-03T17:00:24.357 回答
1

尝试...

var s = $("<div>").append($("#item").clone()).html();

console.log(s);

$(s).remove();

它不是最漂亮的形式,但结果就是你正在寻找的,我相信你可以为它想出一个好的功能......

基本上我正在创建一个 div,将 #item 的副本放入其中,然后将 div 的 innerHTML 输出到控制台以显示整个 #item 元素。(不仅仅是#item的innerHTML)然后我销毁s来清理。

于 2013-10-26T07:52:57.490 回答
1

是的,jquery 可能会发生变化,检查他们现在如何处理版本中的 dom 对象1.9.1

http://jsfiddle.net/5HJ3L/1/

如果你console.log以这种方式尝试

var s = $("#item");
console.log(s);

输出会像

[div#item, context: document, selector: "#item", jquery: "1.9.1", constructor: function, init: function…]
0: div#item
context: document
length: 1
selector: "#item"
__proto__: Object[0]

如果您仔细检查它,您会在上面的数组中找到所需的输出 key 0,因此下一行的输出将是

console.log(s[0]);

输出:

<div id="item">pas</div>

另外,如果您在没有 jquery 的情况下尝试它,则输出将是您需要的输出

var e = document.getElementById('item');
console.log(e);

输出:

<div id="item">pas</div>

PS:这不是针对 jquery 的建议,而是展示它们将如何被处理google-chrome

更正:另请注意,问题中提到的输出是array形式,而我建议的方式是string

于 2013-10-26T08:50:51.187 回答
1

您可以使用 c 样式 console.log 控制控制台日志输出的输出样式:https ://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css

例如,输出一个简单的 dom 元素样式:

console.log("%o", document.body)
于 2013-12-28T06:59:21.740 回答
0
var s = $("#item").html();
console.log(s)
于 2013-10-26T07:28:04.560 回答
0

我得到了控制台发送 DOM 元素而不是 jquery 的预期结果。

console.log($("div")[0])
于 2013-12-13T15:20:14.447 回答
-1
    if div value printed on div .. then plz menstion html(). 

    var s = $("#item").html();

    console.log(s);
于 2013-10-26T07:34:15.883 回答