当前位置: 首页 > 面试题库 >

用jQuery解析完整的HTML页面

阚乐湛
2023-03-14
问题内容

我用ajax加载html。我想将结果加载到jquery对象中。我试过了,但返回null。我怎样才能做到这一点?我有一个完整的页面,包括doctype,head元素和body元素。

var test = $(result); //result contains html code
alert(test.html()); //returns null

我使用此功能加载数据。

function ajaxLoadContent(element) {
    $.ajax({
        url: "url to the page",
        type: "GET",
        timeout: 5000,
        datattype: "html",
        success: function(result) {
        //handler
        },
    });
    return false;

问题答案:

前一阵子,但也许您仍然对此感兴趣。

的内部实现$(String)无法构建包含headbody标签的jQuery对象。它将简单地忽略它们并将所有元素向上移动。

因此,如果您的字符串例如

<html>
  <head>
    <meta ...>
  </head>
  <body>
    <div id="a"/>
  </body>
</html>

生成的jQuery对象将是两个元素的数组

[<meta ...>, <div id="a" />]

为了获得一个类似bodyjQuery的对象,在将其传递给jQuery之前,请剪切除主体内容以外的所有内容:

body = '<div id="body-mock">' + html.replace(/^[\s\S]*<body.*?>|<\/body>[\s\S]*$/ig, '') + '</div>';
var $body = $(body);

现在事情按预期工作了。例如

$body.find('#a')

希望有帮助。



 类似资料:
  • 问题内容: from bs4 import BeautifulSoup import urllib,sys reload(sys) sys.setdefaultencoding(“utf-8”) r = urllib.urlopen('https://twitter.com/ndtv’).read() soup = BeautifulSoup(r) 这不会使整个网页滚动到我想要的末尾,而只会滚动其

  • Jsoup库未解析给定URL的完整html。URL的原始html中缺少一些分区。 有趣的事情:http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users 如果您在jsoup的官方站点http://try.jsoup.org/中给出了上面提到的url,它通过提取正确地显示了url的确切html,但是在使用js

  • 问题内容: from bs4 import BeautifulSoup import urllib,sys reload(sys) sys.setdefaultencoding(“utf-8”) r = urllib.urlopen('https://twitter.com/ndtv’).read() soup = BeautifulSoup(r) 这不会使我整个网页向下滚动到我想要的结尾,而只有

  • 问题内容: 使用C#我想知道如何从此示例html脚本获取Textbox值(即:john): 问题答案: 有多种方法可以使用敏捷包来选择元素。 假设我们定义如下: 1.简单的LINQ 我们可以使用该方法,传递我们正在寻找的元素的名称: 2.更高级的LINQ 我们可以通过使用 更先进的LINQ 来缩小范围: 3. XPath 或者我们可以使用XPath。

  • 问题内容: 我曾经用过,但是抛出了一个错误…有什么办法得到所有东西? 问题答案: 您可以尝试: 如果您还想捕获html标签,可以将它们连接到html,如下所示:

  • 用于解析html网页数据。 作者说:ZHParseHtmlData这个类是我自己写的,解析html的。发现之前用过的TFHpple还有许多都有问题,有的GB2312或者其他编码会乱码或者是不规范的Xml或者不规范的html都解析不出来。现在用我这个类让浏览器对之前页面优化再解析就可以了,只要解析的类是GDataXMLNode,谷歌的东西。也可以用JS解析,但是那样太麻烦,为何不拿着谷歌现有的用呢。