2011-05-10 77 views
5

我使用PHP和ajax命令來獲取外部網頁的全部HTML內容(通過PHP file_get_contents()命令),並將該HTML傳遞給JavaScript變量。一旦將頁面的HTML內容存儲在變量中,我可以使用jQuery與該變量的內容進行交互,就像jQuery通常與DOM進行交互的方式一樣?在此示例中,我試圖搜索具有特定ID屬性的某些HTML元素(<div><script>標籤)的存在。任何人都可以建議我怎麼做到這一點?jQuery可以解析存儲在變量中的HTML嗎?

+0

爲了澄清,我想使用jQuery從包含外部網頁的HTML內容的變量中提取數據*。 – jake 2011-05-10 14:57:26

回答

12

如果我理解正確,你應該能夠將變量傳遞給jQuery函數並相應地工作。

一個簡單的例子與.filter()

$(myHtml).filter('#someid').doStuff(); 
4

它只是作爲一個字符串傳遞給jQuery的構造。

var foo = jQuery('<p><b>asd</b><i>test</i></p>'). 
alert(foo.find('i').text()); 
0

是的。即使沒有,你也可以製作一個無形的div,然後在那裏解析它。

1

你甚至可以使用原生JS來做到這一點。在這種情況下,通過使用其innerHTML屬性像這樣的新的HTML添加到一個隱藏的div:

document.getElementById('hidden_div_id').innerHTML = myHTML; 

一旦新的HTML被添加,您可以通過使用節點任何你想要的方式走路。

0

只需將其注入到隱藏的div中,並在其中操作您需要的內容即可。

var myHTML;//variable with html from php 

var $hiddenDIV = $('<div></div>').hide().appendTo('body').html(myHTML); 
/*Now you can traverse the contents of $hiddenDIV. 
* If you need to get the contents back: 
*/ 
var newHTML = $hiddenDIV.html(); 
+0

如果我這樣做,我會如何防止外部網頁的HTML運行的JavaScript? – jake 2011-05-10 15:08:00

+0

那麼,你可以從html中刪除javascript並將它存儲在另一個變量中,或者如果你根本不需要javascript,那麼你可以完全刪除它。如果您需要編寫該腳本的幫助,請告知我。 – UpHelix 2011-05-10 15:10:43

+0

@jake - 但是,這種做法可能是一個矯枉過正的問題。我會用BoltClock的方法。 – UpHelix 2011-05-10 15:18:38

相關問題