解析ajax HTML响应,并附加结果

时间:2012-09-11 02:58:56

标签: jquery html ajax regex

我得到条件,我需要用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> 

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

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

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

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

2 个答案:

答案 0 :(得分:1)

从&#34; text&#34;更改您的dataType到&#34; html&#34;

答案 1 :(得分:0)

你应该跳过textnode。

我进入了控制台[ Text, <div id=​"main">​</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>