【问题标题】:console output log with jquery selector gives strange output带有 jquery 选择器的控制台输出日志给出了奇怪的输出
【发布时间】:2017-08-29 16:25:37
【问题描述】:

当我在 Chrome 控制台中使用带有一类容器的 jQuery 选择器时:

console.log($('li').closest('.container')); 

我希望得到下面的输出

<ul class="container>_</ul>

但是我得到以下输出:

(2) [ul.emphasis.container, li.container, prevObject: n.fn.init(8), context: document]

如何获得&lt;ul class="container&gt;_&lt;/ul&gt;的输出

【问题讨论】:

  • console.log($('li').closest('.container').prop('outerHTML'))
  • 这是因为您看到的是从选择器返回的 jQuery 对象。这是完全正常的行为。

标签: javascript jquery elements console.log


【解决方案1】:

jQuery 总是返回一个自定义对象,其中包含底层的原生 DOM 节点以及 jQuery 带来的所有自定义方法。

控制台中的结果正是 jQuery 对象的样子。

如果你想要原生 DOM 节点,你可以使用get()

console.log( $('li').closest('.container').get(0) ); 

将为您提供 jQuery 集合中第一个元素的底层 DOM 节点

如果要返回 HTML,可以使用

$('li').closest('.container').get(0).outerHTML; // outer HTML
$('li').closest('.container').html();           // inner HTML

【讨论】:

  • 甚至$('li').closest('.container')[0]?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2013-06-25
相关资源
最近更新 更多