我使用ajax和vanilla javascript进行表单提交,如下所示。我想要实现的是将所有选定的值保存到 项目 ,这是正常的。
现在我需要将这些值用键推送到对象 obj ,这将创建如下对象并将其传递给我的xhttp.send();
var obj={"language":"English";
"location":"USA";
"function":"production"
}
JS代码
saveUserSetting.addEventListener('click', function () {
var links = document.querySelectorAll('.main-content .dropdown > a');
for (var i = 0; i <= links.length; i++) {
var obj = {};
var items = links[i].textContent;
console.log(items); // Items will have the values now English, USA, Production. i want to push this values to
}
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "data.json", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
// response
}
};
xhttp.send("location=USA&langugage=English&function=production");
});
我正在使用普通的javascript。没有jquery或任何其他框架。提前谢谢。
答案 0 :(得分:0)
如果我正确阅读了您的问题,您就可以生成数组:
['English', 'USA', 'Production']
然后,获得所需结果的一种方法是用此替换for
循环:
var labels = ['language', 'location', 'function']
var obj = links.reduce((output, item, index) => {
output[labels[index]] = item
}, {})
这只是使用reduce
来执行使用标签进行对象转换的数组。