jquery之$.each用法(組織陣列物件及json物件)
阿新 • • 發佈:2021-09-16
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