2013-07-11 67 views
1

需要從jQuery的$.get結果中獲取頁面標題和其他元數據。閱讀這裏的某處(似乎無法找到問題 - 對不起!),它只返回body內的元素。也就是說,如果我將結果記錄到控制檯,我會看到包含標題和元標記的大量數據。解析javascript獲取html頁面標題的結果

所以問題很簡單 - 我如何導航數組來取出標題?

下面是一個例子。以下示例將content作爲HTML對象返回,但title返回undefined。如果僅返回body,則有意義。也就是說,日誌記錄data從上到下打印entire pages HTML。日誌記錄thiis打印page as an array,我可以看到title的條目,其innerHTML具有頁面標題。所以 - title的值應該如何分配?

感謝您的幫助!

的JavaScript

$.get(target, function(data){ 

    var thiis = $(data), 
     content = thiis.find('#pageMain'), 
     title = thiis.find('title'); 

    console.log(data, thiis); 
}); 

回答

4

jQuery不解析doctype,html,head和body元素。它將您的整個頁面作爲div的innerHTML設置爲GET請求。您只返回結果元素的集合,以便find()無法找到pageMin的標題元素和ID。你需要使用filter()。

$.get(target, function(data){ 
    var nodes = $(data), 
     content = nodes.filter('#pageMain'), 
     title = nodes.filter('title'); 
    console.log(content,title); 
}); 

爲了使用find(),您需要設置div的innerHTML與數據並查詢該父節點。

+0

明白了 - 有什麼理由比@ scrappedcola的回答更有效率? – technopeasant

+0

接受因爲解釋 - 謝謝你的細節 – technopeasant

1

包裹在一個div返回的數據第一,然後進行選擇。

$.get(target, function(data){ 
    var $wrap = $("<div></div>").append(data); 
    var title = $wrap.find("title"); 
}); 
+0

精美的作品。你介意解釋它爲什麼起作用嗎? – technopeasant