Javascript 循环ajax结果并用id替换所有元素

Javascript 循环ajax结果并用id替换所有元素,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想循环ajax响应中的每个对象,并将这些数据和html附加到id为#jobs的html div中 $.ajax({ url:“/browse_jobs”, 数据:{ “关键字”:关键字, }, 数据类型:“json”, 成功:功能(数据){ 如果(数据){ $.each(数据、数据、函数(k、v){ $(“#工作”).replaceAll(` 会计、人力资源 ${data.data.fields.city},${data.data.fields.country} `); }); } } });

我想循环ajax响应中的每个对象,并将这些数据和html附加到id为
#jobs
的html div中

$.ajax({
url:“/browse_jobs”,
数据:{
“关键字”:关键字,
},
数据类型:“json”,
成功:功能(数据){
如果(数据){
$.each(数据、数据、函数(k、v){
$(“#工作”).replaceAll(`
会计、人力资源
${data.data.fields.city},${data.data.fields.country}
`);
});
}
}
});

当我这样做时,它只会更改id作业的第一个div。

不要复制id。相反,在需要放置作业的区域放置id。也许可以做那些
工作
。然后,每个元素都可以有一个类
job
,这在语义上是有意义的

此外,还可以使用map构建所有元素,然后将它们附加到DOM,从而将对DOM执行的操作数减少到1或2

var jobs=$.map(data.data,函数(v,k){
返回`
会计、人力资源
${data.data.fields.city},${data.data.fields.country}
`;
});
$(“#作业”).empty().append(作业)


不要这样做。根据web标准,ID在DOM中应该是唯一的。改为使用类。在每次迭代中,您都要替换#jobs div的内容。因此,每次您都要替换上一次迭代。我想您应该使用$.append而不是$.replaceAll.use一个类:
$(“.jobs”)
当我使用一个类时它不起作用,那么在id中添加一个变量怎么样-类似于id=“jobs.{I}”?这将允许您使用id,但它们仍然是唯一的。但是我如何循环ajax对象这完全取决于对象的构造方式以及您希望从中得到什么。你能在问题中举例说明你的结果吗?您还可以
console.log(k,v)
在循环中查看它们的确切外观。您的模板文本正在使用
{{i.slug}
,但我没有看到
i
在任何地方定义。这是一个django标记,我忘了