为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

交互式爱情 2021-12-23 15:58:04
我有两个输入类型复选框:<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();        })     }    }
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

你可以做这样的事情:-


let selectedValuesArr = [];

function handleChange(event) {

    const isChecked = event.target.checked;

    if(isChecked) {

        selectedValuesArr.push(event.target.value);

    } else {

        selectedValuesArr.splice(selectedValuesArr.indexOf(event.target.value), 1);

    }

}


查看完整回答
反对 回复 2021-12-23
?
呼唤远方

TA贡献1856条经验 获得超11个赞

您.map()只能在选中的复选框上使用.get()


function handleChange() {

  var check = $(':checked').map((i, c) => ({sid: c.value})).get();

  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()">


查看完整回答
反对 回复 2021-12-23
?
森林海

TA贡献2011条经验 获得超2个赞

你也可以通过更多的优化来做到这一点


let selectedValuesArr = [];

function handleChange(elem) {

  elem.checked ? selectedValuesArr.push(elem.value) : selectedValuesArr.splice(selectedValuesArr.indexOf(elem.value), 1);

}


查看完整回答
反对 回复 2021-12-23
  • 3 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信