ajax调用后重新加载div内容

时间:2015-02-21 07:56:06

标签: javascript jquery ajax

我知道这个问题已被多次询问但在看到这么多例子后不确定,我无法弄清楚为什么它没有发生..

这是我的代码

function update(tid,sid) {
    var getTID = tid;
    var getSID = sid;
    $("#flow_" + getTID + "~" + getSID).html('Loading...');
    $.ajax({
        url: 'generate.cfm?tID=' + getTID + '&sID=' + getSID,
        type: "GET",
        cache: false,
        success: function(data){    
            var k = $(data).find("img");
            $("#flow_" + getTID + "~" + getSID).empty();
            $("#flow_" + getTID + "~" + getSID).append(k);
        }
    });     
}

这是div代码

<div id="flow_#tid#~#sid#" style="margin: 0 10px 0 0;float:right;height:150px;"  class="code"> 
                <img src="#request.webbaseurl#assets/codes/#code#.jpg" style="max-height: 230px;">
            </div>

我在这里遗漏了一些东西,不知道什么是超时或者什么,但是在成功通话后,它应该重新载入div

更新#1

这里我做了更改,我在响应之后做了以下操作,以确保我得到图像,而不是图像标记,我使用div id并在警报中加载内部img元素,我测试了

success: function(data){
            var k = $(data);
            var hiddenField = $('<div type="hidden" ></div>');
            hiddenField.append(k);
            var images = hiddenField.find('#inner');
            $("#ystack_" + getTID + "~" + getSID).hide();   
            $("#flow_" + getTID + "~" + getSID).empty();
            $("#flow_" + getTID + "~" + getSID).append(images.html());
        }

但它会重新加载div,如果我刷新整个页面,它会显示更改的内容

1 个答案:

答案 0 :(得分:0)

您无法直接找到图像对象。

var k = $(data).find(“img”);

这不会work.store响应隐藏元素中的HTML代码并找到图像标记。 HTML代码

<div id="hiddendiv" style="display:none;"> </div>

JQuery ajax成功

success: function(data){ 
       $('#hiddendiv').HTML(data);
       var obj =$('#hiddendiv').find(img);
        $("#flow_" + getTID + "~" + getSID).empty();
        $("#flow_" + getTID + "~" + getSID).append('<img src="'+obj.attr("src")+'"/>');
    }