2011-04-13 38 views
4

我正在通過jquery和ajax加載着陸頁的正文內的html頁面。我需要裝載的文檔中的<title>Page Title</title>用於登錄頁面。AJAX:獲取加載的html文檔的標題(jquery)

我已經試過了,但沒有運氣:

$.ajax({ 
    url: "test.htm", 
    cache: false, 
    dataType: "html", 
    success: function(html){ 
      $('#main-load').html(html); 
      $('#greeting').append($(html).find('title').text()); 
     } 
}); 

我也嘗試了一些其他的方法,但沒有運氣。有任何想法嗎?

謝謝!編輯: test.htm是一個非常簡單的文檔

例子:

<html> 
<head> 
<title>Page Title</title> 
<style> 
.... 
</style> 
</head> 
<body> 
.... 
</body> 
</html> 
+0

你能不能把代碼「TEST.HTM的總結? – 2011-04-13 14:17:32

+3

的'html'方法將它插入之前的文件剝去頭,這是必要的,以避免破壞。不知道什麼是好的解決方法是 - 您可能需要解析原始數據 – 2011-04-13 14:27:03

+0

@Pekka:他沒有在插入的樹中查找 – SLaks 2011-04-13 14:52:55

回答

9

正如佩卡說,它剝去加載的文件頭,所以你」必須用正則表達式將其從原始文本中解析出來:(讓我知道這是否有效)

var title = html.match("<title>(.*?)</title>")[1]; 
+0

@Sunburnt Ginger,修正了上面代碼中的一個錯誤,試試吧,看看它是否有效 – penguinrob 2011-04-13 14:45:35

+0

工作得很好!謝謝!! – 2011-04-13 15:17:36

+0

不客氣。 – penguinrob 2011-04-13 15:38:36

-2

嘗試使用此代碼:

$(html).attr("title"); 

希望工程

+0

沒有bueno ...返回null值,但是謝謝 – 2011-04-13 14:29:35

+2

需要讓'title'元素不是'title'屬性 – 2012-02-11 00:31:24

1

在您追加到main-load之後,請嘗試尋找title

$('#greeting').append($('#main-load').find('title').text());