解析javascript获取页面标题的html结果

时间:2013-07-11 19:33:46

标签: javascript jquery html parsing get

需要从jQuery的$.get结果中获取页面标题和其他元数据。在这里阅读某处(似乎无法找到问题 - 抱歉!)它只返回body内的元素。也就是说,如果我将结果记录到控制台,我会看到包含标题和元标记的大量数据。

所以问题很简单 - 如何导航数组以取出标题?

这是一个例子。下面的示例将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);
});

2 个答案:

答案 0 :(得分:4)

jQuery不解析doctype,html,head和body元素。它使用GET请求将您退出的整个页面设置为div的innerHTML。您只返回结果元素的集合,因此无法使用find()找到pageMin的title元素和id。您需要使用filter()。

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

为了使用find(),您需要使用数据和查询关闭该父节点来设置div的innerHTML。

答案 1 :(得分:1)

首先将返回的数据包装在div中,然后进行选择。

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