1

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

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

这是一个例子。下面的示例content作为 HTML 对象返回,但title返回未定义。如果只返回 是有意义的body。也就是说,日志记录从上到下data打印整个页面 HTML 。日志thiis将页面打印为数组,我可以在其中看到 的条目title,其innerHTML具有页面标题。那么 - 应该如何title分配 ' 值?

谢谢你的帮助!

JavaScript

$.get(target, function(data){

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

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

2 回答 2

4

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

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

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

于 2013-07-11T19:43:18.393 回答
1

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

$.get(target, function(data){
    var $wrap = $("<div></div>").append(data);
    var title = $wrap.find("title");
});
于 2013-07-11T19:38:44.073 回答