【问题标题】:parse javascript get html results for page title解析javascript获取页面标题的html结果
【发布时间】:2013-07-11 19:33:46
【问题描述】:

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

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

这是一个例子。下面的示例将 content 作为 HTML 对象返回,但 title 返回未定义。如果只返回 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);
});

【问题讨论】:

    标签: javascript jquery html parsing get


    【解决方案1】:

    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 并从该父节点查询。

    【讨论】:

    • 知道了——有什么理由比@scrappedcola 的回答更有效吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2012-03-02
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      相关资源
      最近更新 更多