只使用ajax -jquery在body中加载内容

时间:2012-02-22 13:41:00

标签: jquery

我只想加载页面的正文的内容(sample.html)并将其附加到另一个页面的主体(index.html)..如何才能完成此操作..抱歉,我是菜鸟

我使用了以下代码..但这似乎无法正常工作

$.ajax({
    url: "/site/pages/sample.html",
    success: function(data){
        $('body').append(data);
    }
});

4 个答案:

答案 0 :(得分:6)

尝试:

$('body').load('/site/pages/sample.html body');
  

与$ .get()不同,.load()方法允许我们指定一部分   要插入的远程文档。这是通过特殊的方式实现的   url参数的语法。如果有一个或多个空格字符   包含在字符串中,第一个字符串后面的字符串部分   假设space是一个确定内容的jQuery选择器   要加载。

请参阅load()文档

中的Loading page fragments

更新

正如@Windkiller在评论中指出的那样 - 这将复制文档中的body元素。一个更好的解决方案是使用get和替换body的内容,例如:

$.get("/site/pages/sample.html body", function(data) {
     $("body").replaceWith(data);
});

答案 1 :(得分:4)

一种简单的方法是让jQuery过滤掉返回标记中的<body>元素,然后使用contents()获取其子项,包括文本节点,并将它们附加到文档正文:< / p>

$.ajax({
    url: "/site/pages/sample.html",
    success: function(data) {
        $(data).contents().appendTo("body");
    }
});

答案 2 :(得分:1)

修改sample.html并从中删除不需要的内容(如果只通过ajax访问它)或:将ajax函数返回的数据视为长字符串并仅从中复制需要。

$.ajax({
    url: "/site/pages/sample.html",
    success: function(data){
        $('body').append(parseReturnData(data));
    }
});

其中parseReturnData仅返回实际页面所需的内容。

答案 3 :(得分:1)

你可以这样做 声明要显示页面的div

  <div id="managePage"> </div>

在脚本代码中添加此代码

 $('#managePage').load(pageName);

如果要添加点击然后使用onclick,否则您可以根据您的要求使用