1. 程式人生 > 其它 >jquery之$.each用法(組織陣列物件及json物件)

jquery之$.each用法(組織陣列物件及json物件)

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