2011-04-13 162 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());