7 回答

TA貢獻1860條經(jīng)驗 獲得超8個贊
document.querySelector 是瀏覽器級別的 API,根據(jù)參數(shù)選擇第一個滿足的 DOM 節(jié)點。
jquery 腳本里面的 $ 必須在引入了 jquery 之后才能使用,也是 dom 的選擇器,選擇滿足條件的 DOM 節(jié)點數(shù)組,現(xiàn)在 jquery 貌似結(jié)果是原生的 DOM 元素了,所以 $('#aBtn')[0]
就等同于 document.querySelector('#aBtn')

TA貢獻1828條經(jīng)驗 獲得超3個贊
a是(調(diào)用querySelector)返回的DOM原生element對象
b是(調(diào)用jQ的$/jQuery,或者可以叫做jQuery構(gòu)造器)返回的jQ包裝對象,jQ包裝對象同時包含有原生DOM對象和一些jQ自己的東西
b[0]==a
是因為jQ包裝對象在存儲時會把原生DOM對象存儲在key[0]的位置(這個你console一下就很清楚了)

TA貢獻2036條經(jīng)驗 獲得超8個贊
首先 $() 函數(shù)是JQuery類庫里的,querySelector() 是html5里自帶的。
$() 的行為是查找所有匹配的元素,并封裝成jQuery對象以方便使用。
querySelector() 的行為是查找匹配的第一個元素,返回的值為原生DOM對象。
而對jQuery對象使用方括號操作符會返回原生的DOM對象,所以 b[0] 返回的是匹配該選擇器的第一個原生DOM對象,所以會和 querySelector() 返回的值 a 相等。
然后html5里還有一個 querySelectorAll() 方法,該方法返回的值為一個可迭代的 NodeList 對象。這個方法的行為可能和jQuery的 $() 更相似。
let a = document.querySelectorAll('#aBtn');
let b = $('#aBtn');
a[0] === b[0]; //未測試,原則上來說應(yīng)該是相等的
添加回答
舉報