我试图整理一个网络表单,以标明不确定数量的员工是在场还是在场。页面本身包含任意数量的格式div:
<div class="employee" empID="9" presence="0">
divs本身包含选项,其中包含“&#39;存在&#39;根据所选的选项,使用jQuery更改为1或2。
当提交&#39;按下按钮,我想将这些数据转换成一对可解析的数组,其中包含一对“empID”按钮。并且&#39;存在&#39;。我已尝试使用jQuery执行此操作,如下所示:
$('.cic-button').click(function(){
var submitData = {employees:[]};
$('firedrill-employee').each(function(){
submitData.push({
employeeID: $(this).attr('empID'),
presence: $(this).attr('presence')
});
});
});
但是,完成此操作后,submitData变量无法填充。知道为什么吗?我是以正确的方式谈论这件事吗?是我试图做的甚至可能吗?
非常感谢。
答案 0 :(得分:2)
你有一些错误。将您迭代的类放在&#34; employee
&#34;的集合上。不是&#34; firedrill-employee
&#34;并且不要忘记点以表明它是一个班级。使用employees
对象引用submitData
数组。您不能将push
元素放入对象中。
$('.cic-button').click(function () {
var submitData = {
employees: []
};
$('.employee').each(function () {
submitData.employees.push({
employeeID: $(this).data('empID'),
presence: $(this).data('presence')
});
});
console.log(submitData);
});
答案 1 :(得分:0)
您需要指定员工数组:
$('.cic-button').click(function(){
var submitData = {employees:[]}; // employees is an array within submitData...
$('.firedrill-employee').each(function(){
submitData.employees.push({ // ...so amend code here to push to the array, not submitData
employeeID: $(this).attr('empID'),
presence: $(this).attr('presence')
});
});
console.log(submitData);
});
参见示例JSFiddle - http://jsfiddle.net/yng1qb6o/
答案 2 :(得分:0)
<强> Js fiddle 强>
$('.cic-button').click(function () {
var submitData = [];
$('.employee').each(function () {
var self = $(this);
// Create and obj
var obj = new Object(); // {};
obj["employeeID"] = self.attr("empID");
obj["presence"] = self.attr("presence");
//push that object into an array
submitData.push(obj);
console.log(obj);
console.log(submitData);
});
});