为什么这个html没有使用jQuery进行更新

Why is this html not updating using jQuery?

本文关键字:jQuery 更新 html 为什么      更新时间:2023-09-26

我有一个标准的jQuery ajax函数:

$.ajax({ 
    // blah blah...
    success: function(data) 
    {
        if(data) 
        {
            $('.title').text(data.title);
            $('.description').text(data.description);
            if (data.image) 
            {
                $('div#image').html('<a href="'+data.image+'" class="button">View Image</a>');                      
            }
        }
    }
});

服务器响应是一个json对象。CCD_ 1返回图像位置的url。我只是把它粘贴在一个链接中,然后把它粘贴到一个分区中。

每当用户单击库上的"下一个"或"上一个"按钮时,就会运行此ajax调用。问题是,在第一次加载该链接后,它会保持缓存状态,因为即使我单击"下一个"或"上一个",其他所有内容都会更新,如标题和描述,该链接也不会更新。它总是指向第一个图像。

真正奇怪的是,如果我替换这个:

$('div#image').html('<a href="'+data.image+'" class="button">View Image</a>');

带有:

$('div#image').html(data.image);

它运行良好,每次运行ajax调用时都会加载一个新的url。但如果我把它放在一些html中,那么它会加载一次并保持缓存或其他什么。

有人知道为什么会发生这种情况吗?

Tom,这里没有足够的信息来真正确定哪里出了问题,但如果简单地引用data.image本身就很好,为什么不重新编写函数以使用它呢。

$.ajax({ 
    // blah blah...
    success: function(data) 
    {
        if(data) 
        {
            $('.title').text(data.title);
            $('.description').text(data.description);
            if (data.image) 
            {
                $('div#image a').attr('href',data.image);                      
            }
        }
    }
});
$.ajaxSetup({ cache: false });

试着在调用之前将其放在脚本中的某个位置

或者在$.ajax调用中放入一个参数

cache: true