jQuery:将HTML放在某个标签内

时间:2012-01-05 10:29:36

标签: jquery html ajax

我有这个HTML页面,我想创建一个收集另一个页面的HTML内容的jQuery方法。

例如,我想获取标签之间的HTML内容,包括子标签,属性,文本..

我想出了类似的东西:

<script>
var page;
$(document).ready(function() {

$.ajax({
       type : "GET",
    url : "template.html",
    dataType : "html",
    success : function(html) {
    page = $(html).find('body').html();
            //do something

                }
            });
        });

    </script>

但它不能解决问题。 任何的想法?谢谢。

2 个答案:

答案 0 :(得分:4)

您可以使用JQuery Load函数。

$('#result').load('ajax/test.html #container');

此函数从页面container加载ID为ajax/test.html的div中的html,并将html放入ID为result的div中。

来源:http://api.jquery.com/load/

答案 1 :(得分:0)

问题是jQuery不会将整个html页面解析为字符串..

  

传递复杂的HTML时,某些浏览器可能无法生成完全复制所提供的HTML源的DOM。如上所述,我们使用浏览器的 .innerHTML 属性来解析传递的HTML并将其插入到当前文档中。在此过程中,某些浏览器会过滤掉某些元素,例如 <html> <title> <head> 元素。因此,插入的元素可能无法代表传递的原始字符串。

所以你需要绕过这个限制..

解决方法是手动将返回的html添加到html元素。

success  : function(html){    
            var ndoc = document.createElement('html');
            ndoc.innerHTML = html;
            page = $('body', ndoc);
            console.log(page);
            }