无法更新HTML 5数据属性数组

时间:2015-03-02 12:51:22

标签: jquery

当我点击Addons按钮并选中/取消选中项目(Checkboxes)时,我正在更新数据数组

但即使在设置数据后,当我检查元素时,我看到数据-stuff数组仍然是空的

<div class="lastItm_Wrap" data-stuff="[]">

</div>

您能否告诉我如何设置数据/更新数据填充数组

http://jsfiddle.net/tdzfhzjy/102/

2 个答案:

答案 0 :(得分:3)

您需要设置属性值,而不是设置其数据属性。

更改

 $('.lastItm_Wrap').data('stuff', vendoritemsdata);

 $('.lastItm_Wrap').attr('data-stuff', vendoritemsdata);

Working Demo

答案 1 :(得分:1)

您正在使用jQuery data-api,它具有内部存储空间来存储数据值,这就是未更新属性值的原因。

您的值已在内部存储中正确设置,因此应该没问题。

// checkbox checked
$(document).on('click', '.ui-checkbox-off', function (event) {
    var vendoritemsdata = $(".lastItm_Wrap").data('stuff');
    var checkboxid = $(this).next().attr("id");
    vendoritemsdata.push(checkboxid);
    $('.lastItm_Wrap').data('stuff', vendoritemsdata);
    console.log('off',vendoritemsdata)
});

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

    vendoritemsdata.splice($.inArray(itemtoRemove, vendoritemsdata), 1);
    console.log('on',vendoritemsdata)

    $('.lastItm_Wrap').data('stuff', vendoritemsdata);
});

演示:Fiddle

查看控制台中的记录值,您可以看到它正常工作