1、遍历json对象



var obj = {id:"id",name:"name"};
$.each(obj,function(){
//此处this 指代当前遍历到的obj 的胞元素,即属性键值对
alert(this.id);//提示"id"
});
var obj2 = [{id:"id1"},{id:"id2"}];
$.each(obj2,function(){
//此处this 指代当前遍历到的obj 的胞元素,即数组
alert(this.id);//提示"id1","id2"
});


2、遍历元素对象



var selector = $("div");
$.each(eles,function(){
//此处this,指当前遍历到的eles 集合中div元素
})


举例如下:



<div class="mblock">
<input type="hidden" id="e" name="e" value="1" />
<input type="checkbox" name="SSStatus" id="SSStatus" />
<input type="checkbox" name="PFStatus" id="PFStatus" />
</div>
<div class="mblock">
<input type="hidden" id="e2" name="e2" value="12" />
<input type="checkbox" name="SSStatus" id="SSStatus" />
<input type="checkbox" name="PFStatus" id="PFStatus" />
</div>


 遍历上面的mblock对象,并把每一个mblock形成一个json对象数组,如:[{"EmployeeId":"1","SSStatus":1,"PFStatus":1},{"EmployeeId":"1","SSStatus":1,"PFStatus":1}]

 方法如下:



$(function () {
var mblockData = $(".mblock");
var postData = [];
$.each(mblockData, function () {
var empId = $(this).find("input[type='hidden']").val();
var cbData = $(this).find("input[type='checkbox']");
var arr = { "EmployeeId": empId };
$.each(cbData, function () {
var keyName = $(this).attr("id");
var isChecked = $(this).is(':checked') ? 1 : 0;
if (keyName=="SSStatus")
arr.SSStatus = isChecked;
if (keyName == "PFStatus")
arr.PFStatus = isChecked;
})
postData.push(arr);
})
console.info(postData)

})


这里用到怎样定义json数组及动态添加json值的方法

进一步解释如下(向数组中添加josn使用push):



var postData=[{"EmployeeId": "e2d6e69c", "SSStatus": 1,"PFStatus": 1}, {"EmployeeId": "b913cfe","SSStatus": 1,"PFStatus": 0}];
var arr ={"EmployeeId" : "abc","SSSTatus" : 1,"PFStatus":0};
postData.push(arr);


向json中添加元素使用如下方法:



var arr = { "EmployeeId": "abc"};
arr.SSStatus =1;
arr.PFStatus = 0;
那么最终arr会形成:arr={"EmployeeId": "e2d6e69c", "SSStatus": 1,"PFStatus": 1}


 


学习交流群:364976091