使用Javascript在数组中存储键和值

时间:2016-08-23 05:47:03

标签: javascript arrays

我有一个jsp页面,动态地会在该页面上显示该页面上的复选框,当您单击该框时它应保存在数组中,当取消选中该框时,它应该从数组中删除值。

我已经通过创建方法尝试了这个但是它不能很好地工作,请你帮帮我..

function addCheckboxVAlues(checked){
    var split = checked.value.split("|");
    var key =split[0];
    var value=split[1];
    var chks = $("input[name='"+key+"']:checked");
      if (chks.length > 0)  {
         uninvoiced.push(value);
      } else {
         uninvoiced.pop(key);
      }
      console.log(uninvoiced);
}

2 个答案:

答案 0 :(得分:2)

您需要使用splice从数组中删除元素

{{1}}

答案 1 :(得分:0)

此代码看起来比它需要的更复杂。据推测,复选框上有一个点击监听器,因此应该使用复选框调用 this 。您只需在选中复选框时添加值,或者如果未选中该复选框,则将其删除。

这比每次运行检查选择器效率更高。

以下使用内联侦听器是为了方便,就像你动态地附加它们一样,但它似乎被称为相同的方式。



foo|bar: <input type="checkbox" value="foo|bar" onclick="addCheckbox(this)">
fee|fum: <input type="checkbox" value="fee|fum" onclick="addCheckbox(this)">
&#13;
{{1}}
&#13;
&#13;
&#13;

indexOf on MDN有一个polyfill。