Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery ajax请求和html只显示一次数据_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript jQuery ajax请求和html只显示一次数据

Javascript jQuery ajax请求和html只显示一次数据,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,你好 我有一个问题,这是当我点击我的ajax请求按钮时,它工作得很好,并在我的选择项上显示数据,但当我再次点击ajax请求按钮时,这会给出数据(这是正确的),但在我的选择项上,这会再次显示数据,因此,我有两次相同的数据,我如何解决这个问题?我是JS的新手,这是我的学校项目哈哈,如果你能帮助我,那么非常感谢你 不要使用.append()而是使用.html()以及位代码增强功能:- var optionHTML =''; // define variable for (var i=0; i<d

你好

我有一个问题,这是当我点击我的ajax请求按钮时,它工作得很好,并在我的选择项上显示数据,但当我再次点击ajax请求按钮时,这会给出数据(这是正确的),但在我的选择项上,这会再次显示数据,因此,我有两次相同的数据,我如何解决这个问题?我是JS的新手,这是我的学校项目哈哈,如果你能帮助我,那么非常感谢你 不要使用
.append()
而是使用
.html()
以及位代码增强功能:-

var optionHTML =''; // define variable
for (var i=0; i<data.length; i++) {
    optionHTML += '<option>' + data[i].name + '</option>'; // add all options
}
$(".selectEstudio").html(optionHTML); // append in last not inside loop one-by-one
var optionHTML='';//定义变量

对于(var i=0;i,这是因为您要一次又一次地将相同的数据附加到
select
中。不必这样做,您可以先生成
选项
标记,然后将其附加到
select
的innerhtml中,每次请求如下:

var optionsArray = [];

for (var i = 0; i < data.length; i++) {
    var optionElement = $('<option>', '</option>');
    optionElement.text(data[i]);
    optionsArray.push(optionElement);
}

$(".selectEstudio").append(optionsArray);

它可读性很好,对吗?

OMG!,这么简单?现在可以正常工作了!非常感谢!@MiguelToledano很高兴能帮助您:):)@AnantSingh--AlivetoDie-我从Django视图获得了一个HTML数据作为Ajax回调。(注:HTML数据看起来像:mat_frt_grp from_date to_date 1 MS 2004-04-01 2005-03-31如何使用jQuery在页面上呈现HTML数据?
var optionHTML ='';
 $(".selectEstudio").empty();
for (var i=0; i<data.length; i++) {
    optionHTML += '<option>' + data[i].name + '</option>';
}
$(".selectEstudio").html(optionHTML);
var optionsArray = [];

for (var i = 0; i < data.length; i++) {
    var optionElement = $('<option>', '</option>');
    optionElement.text(data[i]);
    optionsArray.push(optionElement);
}

$(".selectEstudio").append(optionsArray);
var optionsArray = data.map(function(current) {
    var optionElement = $('<option>', '</option>');
    optionElement.text(current);
    return optionElement;
});

$(".selectEstudio").append(optionsArray);