console.log($('#picker'));
console.log(document.getElementById("picker"));
指向同一个节点,打印出来的结果不同
怎样才能用原生JS打印出Jquery这样的呢?
jq打印结果:
[i#picker.emoji-picker-icon.emoji-picker.pickerIcon, context: document, selector: "#picker", jquery: "2.1.1", constructor: function, toArray: function…]
0: i#picker.emoji-picker-icon.emoji-picker.pickerIcon
context: document
length: 1
selector: "#picker"
__proto__: jQuery[0]
原生打印结果:
<i id="picker" class="emoji-picker-icon emoji-picker pickerIcon"></i>
jquery选择器对DOM元素进行了一次封装,这样就可以链式调用jquery的一系列方法了,用$()包裹DOM元素可以将其转化为jquery对象,$(ele)[0]可以将DOM元素从jquery对象中提取出来。
console.log($('#picker')[0])
这样就是dom节点了。
1.一个打印的是jquery对象,一个打印的是DOM对象,不是一个东西啊
2.可以覆盖toString方法
$()返回的是包装过的object,所以使用$()[0]就一致了