iT邦幫忙

1

jQuery eq() 問題

有個很奇怪的問題

我使用jquery-1.10.2

var win = $('.test',0);
var win = $('.test').eq(0);
var win = $('.test:eq(0)');
var win = $('.test')[0];
alert(win.scrollHeight);

以上方法,只有下面這取得到值,為什麼呢?

var win = $('.test')[0];
alert(win.scrollHeight);

雖然已經找到方法解決問題

但還是想知道為什麼?

另外,什麼時機用什麼方法呢?

感謝各位

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

5
fillano
iT邦超人 1 級 ‧ 2016-11-04 10:30:14

win是一個jQuery物件喔,並不是那個元素相關的DOM物件。他沒有scrollHeight屬性的。

透過[0],才能取到查詢到的DOM元素,他才有scrollHeight屬性。

所以:

alert($('.test').eq(0)[0].scrollHeight);

也是可以,jQuery是jQuery,DOM是DOM。

鄭小安 iT邦新手 5 級 ‧ 2016-11-04 15:21:47 檢舉

太好了!!!
我懂了,非常有幫助
所以下面說法沒錯吧

$('.test') ;    // 取jQuery 物件
$('.test')[0] ; // 取 HTML DOM
鄭小安 iT邦新手 5 級 ‧ 2016-11-04 15:22:49 檢舉

忘記感謝 fillano 了~謝謝你優

fillano iT邦超人 1 級 ‧ 2016-11-04 15:29:15 檢舉

是的,你得到了。

我要發表回答

立即登入回答