CheckMarked时从数组中删除值

时间:2015-12-25 08:12:18

标签: javascript jquery arrays

我想在检查标记时删除数组的值。

我的HTML

<ul id="keyWords">
  <li><input id="check" name="check" type="checkbox">thirteen</li>
  <li><input id="check" name="check" type="checkbox">twelve</li>
  <li><input id="check" name="check" type="checkbox">eleven</li>
  <li><input id="check" name="check" type="checkbox">ten</li>
  <li><input id="check" name="check" type="checkbox">nine</li>
  <li><input id="check" name="check" type="checkbox">eight</li>
  <li><input id="check" name="check" type="checkbox">one</li>
</ul>

单击此按钮时,我需要将检查标记的值从数组中删除

<button id="clearChecked">Clear Checked Items</button>

这是我试图使用的jquery函数,但它不起作用。 我需要该函数从名为localArray的数组中删除选中的已装箱值,并且关键字位于ul的{​​{1}}

keyWords

2 个答案:

答案 0 :(得分:1)

不要打扰拼接阵列,只需创建一个新阵列:

var newArray = [];
$('#clearChecked').click(function() {
  $('#keyWords > input').each( function (n, obj) {
      if ($(obj).is(':checked')) {
          newArray.push($(obj).val());
      }
  }
});
localArray = newArray;

答案 1 :(得分:0)

每次单击locale都会覆盖localArray,比从中删除对象更聪明

<ul id="keyWords">
    <li><input name="check[]" type="checkbox" value='thirteen'>thirteen</li>
    <li><input name="check[]" type="checkbox" value='twelve'>twelve</li>
    <li><input name="check[]" type="checkbox" value='eleven'>eleven</li>
    <li><input name="check[]" type="checkbox" value='ten'>ten</li>
    <li><input name="check[]" type="checkbox" value='nine'>nine</li>
    <li><input name="check[]" type="checkbox" value='eight'>eight</li>
    <li><input name="check[]" type="checkbox" value='one'>one</li>
</ul>
<button id="clearChecked">Clear Checked Items</button>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
var localArray = [];
$('#clearChecked').click(function() {
    var Array = [];
      $('#keyWords input').each( function () {
         if ($(this).is(':checked'))
            Array.push($(this).val());
      });
    localArray = Array;
    console.log(localArray);
});
</script>