Javascript 使用链接重新发送AJAX请求?

Javascript 使用链接重新发送AJAX请求?,javascript,jquery,Javascript,Jquery,是否只需要重新加载AJAX请求,以便在下面的代码中更新从外部站点提取的内容 $(document).ready(function () { var mySearch = $('input#id_search').quicksearch('#content table', { clearSearch: '#clearsearch', }); var container = $('#content'); function doAjax(url) {

是否只需要重新加载AJAX请求,以便在下面的代码中更新从外部站点提取的内容

$(document).ready(function () {
        var mySearch = $('input#id_search').quicksearch('#content table', { clearSearch: '#clearsearch', });
        var container = $('#content');
        function doAjax(url) {
            if (url.match('^http')) {
                $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
                    "q=select%20*%20from%20html%20where%20url%3D%22"+
                    encodeURIComponent(url)+
                    "%22&format=xml'&callback=?", 
                function (data) {
                if (data.results[0]) {
                    var fullResponse = $(filterData(data.results[0])),
                       justTable = fullResponse.find("table");
                    container.append(justTable);
                    mySearch.cache();
                    $('.loading').fadeOut();
                } else {
                    var errormsg = '<p>Error: could not load the page.</p>';
                    container.html(errormsg);
                }
                });
            } else {
                $('#content').load(url);
            }
        }
        function filterData(data) {
            data = data.replace(/<?\/body[^>]*>/g, '');
            data = data.replace(/[\r|\n]+/g, '');
            data = data.replace(/<--[\S\s]*?-->/g, '');
            data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
            data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
            data = data.replace(/<script.*\/>/, '');
            data = data.replace(/<img[^>]*>/g, '');
            return data;
        }
        doAjax('link');
    });
现在我有一个按钮可以重新加载整个页面,但我只想重新加载AJAX请求。这可能吗


编辑:我需要指定更多。虽然它可以很容易地再次调用AJAX,但它也可以替换已有的信息吗?

您只需在单击按钮时再次调用doAjax函数

$("#buttonID").on("click", function() {
    doAjax("link");
});
将其添加到上述document.ready代码中,并相应设置按钮ID

然后改变

container.append(justTable);


您只需要在单击按钮时再次调用doAjax函数

$("#buttonID").on("click", function() {
    doAjax("link");
});
将其添加到上述document.ready代码中,并相应设置按钮ID

然后改变

container.append(justTable);

在doAjax函数中,将HTML附加到元素上。如果覆盖元素的HTML而不是附加到元素,则每次运行doAjax函数时都会刷新HTML:

简单更改:

container.append(justTable);
致:

当然,您可以将单击事件处理程序绑定到链接或任何元素,就像其他答案所示。确保将click事件绑定到document.ready事件处理程序中的适当范围内,以便可以从click事件处理程序访问doAjax函数。

在doAjax函数中,将HTML附加到元素上。如果覆盖元素的HTML而不是附加到元素,则每次运行doAjax函数时都会刷新HTML:

简单更改:

container.append(justTable);
致:


当然,您可以将单击事件处理程序绑定到链接或任何元素,就像其他答案所示。确保将click事件绑定到document.ready事件处理程序中的适当范围内,以便可以从click事件处理程序访问doAjax函数。

是否有任何方法可以替换已经存在的信息?抱歉,我应该在op.中指定更多内容,而不是container.appendjustTable do container.htmljustTable-这将替换任何现有数据。请注意:.on在jQuery 1.7中是新的,在本例中与.bind相同。谢谢你提到这个,贾斯珀。我倾向于尝试使用最新的版本,但有时忘记了这并不总是每个人都可以选择的。有没有任何方法可以替代已经存在的信息?抱歉,我应该在op.中指定更多内容,而不是container.appendjustTable do container.htmljustTable-这将替换任何现有数据。请注意:.on在jQuery 1.7中是新的,在本例中与.bind相同。谢谢你提到这个,贾斯珀。我倾向于尝试使用最新的版本,有时会忘记这并不总是每个人都可以选择的。