我以為,document.getElementById('AAA') 會跟 jQuery 的 selector 抓到一樣的東西,換句話說...我以為他們會指到一樣的東西,但是我錯了(慚愧,當了一年多的前端現在才懂...)。
這種事情發生在我在 maintain 原生 JavaScript 跟 jQuery 並存的 js 檔。
比方說我把原本的 $player 改成用 jQuery 的 selector:
因為...
getElementById 抓到的是 HTML DOM Object;
而 jQuery 的 selector 抓到的是 jQuery Object。
如果要把 jQuery 抓到的東西變成 HTML DOM Object,必須明確的指到該 jQuery Object 的第一個元素,像這樣:
截一下 console.log 的比較:
這種事情發生在我在 maintain 原生 JavaScript 跟 jQuery 並存的 js 檔。
比方說我把原本的 $player 改成用 jQuery 的 selector:
$player = document.getElementById('player');
$player = $('#player');
但如果真的這樣改就毀了。因為...
getElementById 抓到的是 HTML DOM Object;
而 jQuery 的 selector 抓到的是 jQuery Object。
如果要把 jQuery 抓到的東西變成 HTML DOM Object,必須明確的指到該 jQuery Object 的第一個元素,像這樣:
var $player = $('#player')[0];
截一下 console.log 的比較:
不知道以上的解釋o不ok,
不過學習就這樣樣,答案就是找出來的,而我目前只找到這樣的解法,
如果錯誤還麻煩大大們幫忙指正:)
參考:
document.getElementById vs jQuery $()
不過學習就這樣樣,答案就是找出來的,而我目前只找到這樣的解法,
如果錯誤還麻煩大大們幫忙指正:)
參考:
document.getElementById vs jQuery $()
沒有留言:
張貼留言
若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD