給定一個jQuery對象$j
,我需要知道它是否代表已經在頁面上的東西,或者它是否還沒有放在頁面上。舉例來說,如果我有這樣的:檢測一個jQuery對象是否在頁面上
$j = $('#id-of-something-already-on-the-page');
或
$j = $('<p>Where is pancake house?</p>').appendTo($('#this-is-already-there'));
然後我在網頁上的東西,我不需要把它放在網頁上。但是,如果我只是有這個:
$j = $("<p>I'll cook you some eggs, Margie.</p>");
然後,我需要追加它之前,它是在頁面上。
問題是你如何問$j
如果它在頁面上?我知道兩種方式的工作就好了:
- 看看它是否有父母:
$j.parent().length > 0
暗示它在頁面上。 - 看看它是否有一個有效的索引:
$j.index() > -1
意味着它在頁面上。
我可以看到第一個失敗如果$j
是html
或者可能body
;我很高興忽視這兩種病理情況。我想不出第二種方法會失敗。
有沒有一個標準的技術來詢問jQuery對象是否在頁面上?我不在乎$j
是否可見。
附加$ J能有一個家長,而不是放在你知道文檔... – jcolebrand 2011-03-25 03:39:13
另一個可能的測試:'$ j.closest( '主體'),大小()> 0' – 2011-03-25 03:42:40
@drachenstern:好點。提出問題的最好的部分是讓某人指出明顯的問題。據推測,同樣的問題也適用於索引方法,因爲他們正在檢查類似的東西。 – 2011-03-25 03:51:20