通过 ajax 请求页面,但知道哪个类有正文
Posted
技术标签:
【中文标题】通过 ajax 请求页面,但知道哪个类有正文【英文标题】:Request a page vía ajax but know what class had the body 【发布时间】:2014-09-29 12:57:28 【问题描述】:我想在通过 ajax 获取页面时获取 body 类,如下所示:
$.get(url, function (data)
console.log(data);
console.log( $(data).find('body').length, $(data).filter('body').length );
);
当数据记录完整的 html 代码时(带有 doctype、head、body、..)
两个日志都会返回0
知道我错过了什么吗?
【问题讨论】:
尝试console.log( $(data) );
,您可以看到数据从html中生成的实际jQuery对象。
问题是身体不在那里......我一定是错过了什么......
【参考方案1】:
jQuery 似乎不喜欢带有 doctype 或 $("<html><body>")
之类的东西。不知道为什么或者这是否是一个错误,但您可以创建自己的文档并从中创建一个 jQuery 集合。
var doc = document.implementation.createHTMLDocument();
doc.innerHTML = data;
var $doc = $(doc);
console.log($doc.find("body").length);
【讨论】:
不错!这行得通!知道为什么console.log($doc.find("body").className);
返回一个空字符串吗? (body 有几个类)
@ToniMichelCaubet .find
也返回一个 jQuery 集合,而 .className
不是一个 jQuery 属性。您可以使用 .attr("class")
或不使用 jQuery 并使用 doc.querySelector("body").classList
(或 className
)以上是关于通过 ajax 请求页面,但知道哪个类有正文的主要内容,如果未能解决你的问题,请参考以下文章
js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台