【问题标题】:How to load contents to an existing div with jquery load() without removing the divs existing contents如何在不删除 div 现有内容的情况下使用 jquery load() 将内容加载到现有 div
【发布时间】:2012-04-12 04:10:32
【问题描述】:

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

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

【问题讨论】:

    标签: php jquery append


    【解决方案1】:
    $.getJSON("<?php echo SITEURL; ?>/newpost.php", function(data){    
        $("#parent-post").append(data);        
           special_functions();
    
    });
    

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

    【讨论】:

      【解决方案2】:

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

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

         

      【讨论】:

        【解决方案3】:

        $.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();                                                   
        
            });
        
         });
        

        【讨论】:

          【解决方案4】:

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

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

          既然您希望内容被附加而不是替换,那么load 是正确的使用方法。使用 getpostajax 等任何其他方法从 php 获取内容,然后将其附加到所需的容器中。

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

          【讨论】:

            【解决方案5】:

            最简单的可能是将远程内容加载到 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>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-08-01
              • 2023-04-02
              • 1970-01-01
              • 2011-06-30
              • 1970-01-01
              • 2018-10-14
              • 1970-01-01
              相关资源
              最近更新 更多