Javascript 如何在不重新加载整个页面的情况下刷新特定div? $(文档).ready(函数(){ var标志=1; $(“.hold”)。单击(函数(){ job_id=this.id; 如果(标志==1) { $.ajax({ 类型:“POST”, 数据:{“作业id”:作业id}, 网址:“pausehold”, 成功:功能(数据){ $(“#success_hold”).load(“#success_hold”); } }); flag=0; } 其他的 { $.ajax({ 类型:“POST”, 数据:{“作业id”:作业id}, 网址:“简历持有”, 成功:功能(数据){ $(“#success_hold”).load(“#success_hold”); } }); flag=1; } }); });

Javascript 如何在不重新加载整个页面的情况下刷新特定div? $(文档).ready(函数(){ var标志=1; $(“.hold”)。单击(函数(){ job_id=this.id; 如果(标志==1) { $.ajax({ 类型:“POST”, 数据:{“作业id”:作业id}, 网址:“pausehold”, 成功:功能(数据){ $(“#success_hold”).load(“#success_hold”); } }); flag=0; } 其他的 { $.ajax({ 类型:“POST”, 数据:{“作业id”:作业id}, 网址:“简历持有”, 成功:功能(数据){ $(“#success_hold”).load(“#success_hold”); } }); flag=1; } }); });,javascript,jquery,dom,ecmascript-5,Javascript,Jquery,Dom,Ecmascript 5,我有一个div,其中id=“success\u hold”。现在,当我在更新数据时单击class=“hold”会发生什么。现在,我想刷新我的,而不重新加载我正在使用.load()函数的整个页面,但问题是,当我使用.load()函数时,该函数会在success\u hold中显示整个页面。那么,我如何解决这个问题?我只想刷新success\u hold 谢谢问题是因为load()用于发出另一个AJAX请求,并将从该请求检索到的HTML的一部分放在目标元素中 由于您已经在发出AJAX请求以获取数据(

我有一个div,其中
id=“success\u hold”
。现在,当我在更新数据时单击
class=“hold”
会发生什么。现在,我想刷新我的
,而不重新加载我正在使用
.load()
函数的整个页面,但问题是,当我使用
.load()
函数时,该函数会在
success\u hold
中显示整个页面。那么,我如何解决这个问题?我只想刷新
success\u hold


谢谢

问题是因为
load()
用于发出另一个AJAX请求,并将从该请求检索到的HTML的一部分放在目标元素中

由于您已经在发出AJAX请求以获取数据(可能是HTML),因此只需将
append()
数据添加到容器中即可

还请注意,您的条件的两个方面之间的唯一区别是请求发送到的URL,因此您可以轻松地擦干此代码:

$(文档).ready(函数(){
var标志=真;
$(“.hold”)。单击(函数(){
var url=''+(标志?'pausehold':'resumehold');
flag=!flag;
$.ajax({
类型:“POST”,
数据:{job_id:this.id},
url:url,
成功:功能(数据){
$(“成功持有”)。追加(数据);
}
});
});
});
如果
data
包含整个页面,那么您应该更改该PHP文件以仅返回相关的HTML,因为这将有助于加快请求的速度。如果出于任何原因,您不能这样做,那么您可以从响应中提取所需的元素,如下所示:

<div id="success_hold">
<?php
    if($row['mandate_end']!=date('Y-m-d') && $row['job_position']=='unhold')
    {
        echo '<span class="badge badge-success">Open</span>';
    }
    else
    {
        echo '<span class="badge badge-warning">Hold</span>';
    }
?>
</div>

<script>
    $(document).ready(function(){
        var flag =  1;
        $(".hold").click(function(){
            job_id = this.id;
            if(flag == 1)
            {
                $.ajax({
                    type:"POST",
                    data:{"job_id":job_id},
                    url:"<?php echo base_url(); ?>pausehold",
                    success:function(data){
                        $("#success_hold").load("#success_hold");
                    }
                });
                flag = 0;
            }
            else
            {
                $.ajax({
                    type:"POST",
                    data:{"job_id":job_id},
                    url:"<?php echo base_url(); ?>resumehold",
                    success:function(data){
                        $("#success_hold").load("#success_hold");
                    }
                });
                flag = 1;
            } 
        }); 
    });
</script>
这是您在ajax中的成功方法。您想将数据内容添加到您的div#success(成功)hold中吗

如果您需要,只需执行以下操作:

success:function(data){
    $("#success_hold").load("#success_hold");
}

您应该从服务器端发送html,并使用.html()Try
$(“#success_hold”).html($(数据).find(“#success_hold”))粘贴到div上。
;我使用了你的代码@Rorymcrossan,我使用了
alert(data)
而不是
$(“#success_hold”)。追加(data)但它在我的警报框中没有显示任何内容
警报()
是否触发?没有,没有发生任何情况
success:function(data){
    $("#success_hold").load("#success_hold");
}
success:function(data){
    $("#success_hold").html(data);
}