如何使用jquery load()将内容加载到现有div而不删除div现有内容

时间:2012-03-28 14:32:44

标签: php jquery append

我想将php文件的内容加载到已存在的div中。我尝试了以下代码,但我得到的错误加载没有在firebug中定义。有人可以帮助我吗?

 $("#post_button").click(function(){
    var result = load("<?php echo SITEURL; ?>/newpost.php", data);
    $("#parent-post").append(result, function() {
    special_functions();
 });

5 个答案:

答案 0 :(得分:1)

$.load()$.ajax()的便捷方法,默认情况下会替换选择器的html。为了更加灵活,可以使用另一种方法,如$.get,它可以让您访问返回数据并且不会操纵DOM。然后,您可以附加而不是替换

http://api.jquery.com/jQuery.get/

$("#post_button").click(function(){
    $.get("<?php echo SITEURL; ?>/newpost.php", data, function( returnData){/* assuming your data var is data to send to server*/
            $("#parent-post").append(returnData);
            special_functions();                                                   

    });

 });

答案 1 :(得分:0)

最简单的可能是将远程内容加载到div的子元素而不是div本身。请注意我在jquery中所做的更改(必须在要加载内容的元素上调用load)。

<div id="parent-post">
Lorem ipsum dolor sit amet. 
<div id="inner_div"></div>
</div>

<script type="text/javascript">
$("#post_button").click(function(){
    $("#inner_div").load("<?php echo SITEURL; ?>/newpost.php", 
                         data, special_functions);

 });

</script>

答案 2 :(得分:0)

此处定义的load方法在哪里?如果您希望它是jQuery load,那么您应该以这种方式使用它。

$(element).load('url');

由于您希望附加内容而不是替换内容,因此load是正确的方法。使用getpostajax之类的任何其他方法从php获取内容,然后将其附加到所需的容器中。

$.get("<?php echo SITEURL; ?>/newpost.php", function(response){
    $("#parent-post").append(response);
    special_functions();
});

答案 3 :(得分:0)

$.getJSON("<?php echo SITEURL; ?>/newpost.php", function(data){    
    $("#parent-post").append(data);        
       special_functions();

});

其中getJSON也可以是$ .get,$ .post。

答案 4 :(得分:0)

你去吧。由于AJAX从服务器提取数据,因此它使用异步行为,这意味着您需要给它一个回调函数来告诉它在获取数据时该做什么:

 $("#post_button").click(function(){
     $.post("<?php echo SITEURL; ?>/newpost.php", data, function(result) {
         $("#parent-post").append(result);
         special_functions();
      });
 });