2011-03-15 58 views
0

我設法通過jQuery和ajax檢索網頁的html內容。 現在我想查找h1標籤之間的值並顯示它。 如何在jQuery中做到這一點?使用jQuery檢索html標籤之間的字符串

$.get(link, function(res){ 
    //get link content 
    var temp_content = res.responseText; 
} 

感謝的

回答

2
$(temp_content).find('h1').text() 

應該這樣做。你正在創建一個jQuery對象,找到H1,然後獲取它的文本。

+0

謝謝你的工作:) – ofir 2011-03-15 13:28:23

2

使用.find()尋找到返回的字符串中你有<h1></h1>.text()得到<h1></h1>之間的任何東西。

請注意,如果此網頁位於另一個域中,您有跨站點腳本處理問題需要處理。如果它在同一個域上,你應該沒問題。

$.get(link, function(res){ 
    //get link content 
    var temp_content = res.responseText; 
    $(temp_content).find("h1").text(); 
} 
1

解決方案取決於標籤在HTML響應中已返回給您的位置。例如,如果<h1>元素位於主體中,或者在沒有環繞html和body標籤的字符串中獨立,則find()不適用於您。看到這個examnple:

var html_str = '<html><body><h1>Title</h1><h1>Second Title</h1></body></html>'; 
var html_str2 = '<h1>Title</h1><h1>Second Title</h1>'; 

$(html_str)  --> jQuery(h1, h1) 
$(html_str2)  --> jQuery(h1, h1) 

如果你打電話找到關於這些jQuery的對象,那麼它會嘗試找到從<h1>元素的兒童所需的元素。這當然是行不通的。您可以使用過濾器來確保您只獲得所需的標籤,或直接致電text(),例如。

$(html_str).filter('h1').first().text() --> 'Title' 
$(html_str2).first().text()    --> 'Title' 

如果<h1>包裝在一個div中,那麼它工作正常。請參閱:

var html_str3 = '<div><h1>Title</h1><h1>Second Title</h1></div>'; 

$(html_str3).find('h1')      --> jQuery(h1, h1) 
$(html_str3).find('h1').first().text()  --> 'Title' 

最後,記得打電話first()否則你會從連接在一起的幾個<h1>元素獲取文本。

$(html_str3).find('h1').text() --> 'TitleSecond Title' 
相關問題