1

我得到了需要使用 ajax 请求页面的条件。结果我得到了HTML。解析这些 HTML 结果,并将解析的 HTML 内容附加到当前页面。

假设这个 HTML 内容是请求的内容:

<html>
<head></head>
<body>

<div id="main">
<script type="text/javascript" src="http://script.com/js/script.js"></script>
</div>

</body>
</html> 

如何解析#mainid 选择器(包括 javascript 文本)而不是将其附加到当前 HTML 的一部分。

jQuery.ajax({
    url: requestedurl,
    type : "POST",
    dataType : "text",
    success: function(data) {
        console.log(jQuery(data).find("#main"));
        // than append
    }
});

不使用 jquery 解析,而是使用正则表达式会更好吗?非常感谢您的帮助。

ps:我尝试使用 jquery 加载结果,我得到文本节点内容等。不幸的是我不知道如何解析它。:(

4

2 回答 2

1

您应该跳过文本节点。

我进入控制台[ Text, <div id=​"main">​&lt;/div>​, <script type=​"text/​javascript" src=​"http:​/​/​script.com/​js/​script.js"></script>​, Text]

所以就得到jquery(data)[1]

我在 test.html 中尝试了与您相同的方法:

<html>
<head></head>
<body>

<div id="main">
<script type="text/javascript" src="http://script.com/js/script.js"></script>
</div>

</body>
</html>

在另一个文件中

    <script type="text/javascript">
    $(document).ready(function(){
       jQuery.ajax({
        url: './test.html',
        type : "POST",
        dataType : "html",
        success: function(data) {
            console.log(jQuery(data)[1]); //Then i got the main div
            // than append
        }
    });
   });
    </script>
于 2012-09-11T03:40:01.107 回答
1

将您的数据类型从“文本”更改为“html”

于 2012-09-11T03:03:49.357 回答