使用jquery解析完整的html页面

Mar*_*ens 9 javascript ajax jquery

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

var test = $(result); //result contains html code
alert(test.html()); //returns null
Run Code Online (Sandbox Code Playgroud)

我用这个函数加载数据.

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

lrs*_*jng 49

这是不久之前,但也许你仍然对它感兴趣..

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

所以如果你的字符串是例如

<html>
  <head>
    <meta ...>
  </head>
  <body>
    <div id="a"/>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

[<meta ...>, <div id="a" />]
Run Code Online (Sandbox Code Playgroud)

body在将它传递给jQuery之前,获取类似jQuery对象除了正文内容之外的所有内容:

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

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

$body.find('#a')
Run Code Online (Sandbox Code Playgroud)

希望有所帮助..

  • 为什么这个答案没被接受?让我免于头痛.谢谢! (3认同)
  • 为什么jquery不能解析头部和身体? (3认同)