【问题标题】:Request a page vía ajax but know what class had the body通过 ajax 请求页面,但知道哪个类有正文
【发布时间】: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对象。
  • 问题是身体不在那里......我一定是错过了什么......

标签: jquery ajax dom jquery-selectors


【解决方案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
猜你喜欢
  • 2019-11-11
  • 1970-01-01
  • 2010-11-04
  • 2012-02-18
  • 1970-01-01
  • 2011-12-31
  • 2013-01-09
  • 1970-01-01
  • 2021-08-17
相关资源
最近更新 更多