2011-05-10 213 views
2

我使用PHP和ajax命令來獲取外部網頁的全部HTML內容(通過PHP file_get_contents()命令),並將該HTML傳遞給JavaScript變量。 使用該變量中的HTML內容,我現在試圖選擇&提取該變量中的某些元素。 我嘗試使用.filter()函數,例如jQuery:.filter()返回的元素數量比預期的少?

$(myHTML).filter('#someID').doStuff(); 

.filter()命令似乎並沒有準確地過濾我的選擇。

它工作在某些情況下

$(myHTML).filter('title').text(); 

但它似乎沒有試圖選擇多個元素時工作。 例如,如果我試圖讓所有的<div><a>標籤的數量,我不斷收到零

alert($(myHTML).filter('a').length) 

即使有75個<a>標籤在這個例子中。

當試圖獲得所有<div>標籤的計數時,會發生同樣的情況:上面的代碼只返回零。

任何人都可以解釋爲什麼發生這種情況,我能做些什麼來解決這個問題?

+1

很難讀到你的問題,所以我重新格式化了它8 ^) – mcgrailm 2011-05-10 16:52:11

回答

5

過濾器只會返回已過濾的頂層元素,不會遍歷子元素。使用find()來代替。

+4

新jQuery編碼器的常見問題,['.find()'](http://api.jquery.com/find/ ),['.filter()'](http://api.jquery.com/filter/)和['.children()'](http://api.jquery.com/children/)。 – Orbling 2011-05-10 16:52:09

+1

@Orbling:感謝您的鏈接,我只是用我的手機餵我對公共汽車的癡迷,並且在觸摸屏上添加額外的功能並不容易。:) – DarthJDG 2011-05-10 16:59:15

+0

Aye,絕對很費勁 - 大多數人似乎都有一般提供鏈接的麻煩。可能是因爲它減慢了你的速度,最終人們在你面前發帖。 – Orbling 2011-05-10 17:13:56