2015-03-03 39 views
-1

当我点击插件,它会打开一个弹出式按钮,我可以选择/取消选择复选框,我正在更新这些数据到数据 - 这是一个数据 - 属性。我怎样才能从JSON删除JSON数组

数据填充数据阵列中的数据看起来这样

[ 
    { 
     "name": "checkbox-mini-0", 
     "cost": "20" 
    }, 
    [ 
     { 
      "name": "checkbox-mini-1", 
      "cost": "10" 
     } 
    ], 
    [ 
     { 
      "name": "checkbox-mini-4", 
      "cost": "199" 
     } 
    ], 
    [ 
     { 
      "name": "checkbox-mini-5", 
      "cost": "233" 
     } 
    ] 
] 

我的问题是,当我取消,我怎么能删除基于名称的阵列?

http://jsfiddle.net/kgm9o693/15/

回答

2

我想你需要的是

// checkbox checked 
//var toppcrusts = []; 
$(document).on('click', '.ui-checkbox-off', function (event) { 
    var vendoritemsdata = $('.lastItm_Wrap').data('stuff'); 

    var checkboxid = $(this).next().attr("id"); 
    var cost = $(this).attr("cost"); 

    var toppcrusts = { 
     'name': checkboxid, 
     'cost': cost 
    }; 
    vendoritemsdata.push(toppcrusts); 
    $('.lastItm_Wrap').data('stuff', vendoritemsdata).attr('data-stuff', JSON.stringify(vendoritemsdata)); 
}); 

// checkbox Unchecked 
$(document).on('click', '.ui-checkbox-on', function (event) { 
    var vendoritemsdata = $('.lastItm_Wrap').data('stuff'); 

    var name = $(this).next().attr("id");; 
    $.each(vendoritemsdata, function (i, item) { 
     if(item.name == name){ 
      vendoritemsdata.splice(i, 1); 
      return false; 
     } 
    }); 
    $('.lastItm_Wrap').data('stuff', vendoritemsdata).attr('data-stuff', JSON.stringify(vendoritemsdata)); 
}); 

演示:Fiddle

注:.attr('data-stuff', JSON.stringify(vendoritemsdata))是不是真的需要?它只是因为你的样品中你是做更新属性,而不是使用属性使用数据api

此外还有一个轻微的变化数据结构,因为我认为阵列的数组并不是真的需要。

+0

非常感谢,但是我只想从数据数组中删除未经检查的特定数组。 (目前它正在删除数据数组中的最后一个) – Kiran 2015-03-03 06:26:00

+1

@Kiran http://jsfiddle.net/arunpjohny/Lf9q56hw/2/ – 2015-03-03 06:30:07

+0

是的,这是我在找,非常感谢。 – Kiran 2015-03-03 06:31:46