每次触发ajax时都通过jQuery创建新元素

时间:2014-11-13 10:10:55

标签: javascript jquery ajax

我正在努力解决这个问题,每当我通过jQuery触发AJAX调用时,都会向DOM添加一个全新的元素。

下面的代码每次触发AJAX调用时刷新文本,我希望它添加全新元素而不是刷新。

这是我写的代码。

function successAJAX(response){
        response = $.parseJSON(response);
        var priceHTML = document.createElement('p');
        priceHTML.innerText= "foo";
        $("#priceContainer").append(priceHTML);
    }
function makeAjaxRequest() {
            $.ajax({
                url: "ajax/ajax.php",
                data: obj,
                type: "post",
                success: successAJAX
            });//end ajax
        };//end makeRequest

        $button.on("submit",makeAjaxRequest());

目前的情况是我可以在按下提交按钮后成功添加新的html元素。

但我对此不满意,我想每次按下提交按钮时再添加一个新的html元素。

例如,当我按下提交按钮(触发ajax功能)100次时,我现在只能在DOM上附加1个html元素。

我的问题是如果我按下提交按钮(触发ajax功能)100次,如何在DOM上附加100个html元素。

2 个答案:

答案 0 :(得分:0)

function successAJAX(response){
    response = $.parseJSON(response);
    var priceHTML = document.createElement('p');
    priceHTML.innerText= "foo";
    $("#priceContainer").append(priceHTML);
}    

首先,如果您在该功能中甚至没有使用response = $.parseJSON(response);response行在那里做什么?

其次,我们必须看到执行AJAX的功能才能查看出错的原因,因为您的代码似乎没有太多错误。

顺便说一句,您还可以使用

创建priceHTML var
var priceHTML = $('<p>'); 
priceHTML.html('foo');`

(因为你正在使用jQuery)。

答案 1 :(得分:0)

应该是这样的,

var priceHTML = document.createElement('p');
priceHTML.innerHTML= "foo";
$("#priceContainer").append(priceHTML);
相关问题