当我点击Addons时,它会打开一个弹出按钮,我可以选择/取消选中复选框,我将这些数据更新为数据 - 这是一个数据 - attr。
data-stuff数据数组中的数据看起来就是这样
[
{
"name": "checkbox-mini-0",
"cost": "20"
},
[
{
"name": "checkbox-mini-1",
"cost": "10"
}
],
[
{
"name": "checkbox-mini-4",
"cost": "199"
}
],
[
{
"name": "checkbox-mini-5",
"cost": "233"
}
]
]
我的问题是当我取消选中时,如何根据名称删除数组?
答案 0 :(得分: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
此外,数据结构略有变化,因为我认为不需要数组数组。