需要从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);
});
答案 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");
});