如何通过选中复选框删除javascript中的数组对象

我有两个输入类型复选框:


<input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715" onchange="handleChange(this)">

<input type="checkbox" value="6da1dc651d011c56ef1cb3db_837154" onchange="handleChange(this)">

我想在检查时创建一个输入值数组,当检查为 false 时,将删除具有该值的对象,但不会删除它


    var Array = [];

     var obj = {};

    function handleChange(elem) {

    var check = $(elem).prop("checked");

    if (check == true) {

        obj["obj"] = $(elem).val();

        optionalservices.push(obj)

      } else if (check == false) {

        optionalservices = optionalservices.filter(function (item) {

            return item.obj !== $(elem).val();

        })

     }

    }


交互式爱情
浏览 152回答 3
3回答

千万里不及你

你可以做这样的事情:-let selectedValuesArr = [];function handleChange(event) {&nbsp; &nbsp; const isChecked = event.target.checked;&nbsp; &nbsp; if(isChecked) {&nbsp; &nbsp; &nbsp; &nbsp; selectedValuesArr.push(event.target.value);&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; selectedValuesArr.splice(selectedValuesArr.indexOf(event.target.value), 1);&nbsp; &nbsp; }}

呼唤远方

您.map()只能在选中的复选框上使用.get()function handleChange() {&nbsp; var check = $(':checked').map((i, c) => ({sid: c.value})).get();&nbsp; console.log(check);}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715" onchange="handleChange()"><input type="checkbox" value="6da1dc651d011c56ef1cb3db_837154" onchange="handleChange()">

森林海

你也可以通过更多的优化来做到这一点let selectedValuesArr = [];function handleChange(elem) {&nbsp; elem.checked ? selectedValuesArr.push(elem.value) : selectedValuesArr.splice(selectedValuesArr.indexOf(elem.value), 1);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript