如何在按钮单击时从数组中删除项目

时间:2017-03-10 04:50:20

标签: javascript jquery arrays

我有一个包含少量行和删除按钮的表。我已将所有表的列表存储在数组'arr'中。如何在按钮单击时从该阵列中删除所选项目。

watch: {
    'email': function (val) {
       validateInput('email', val,function(response){this.validEmail=response})
    }
  }
  //...
  validateInput('email', val, cb)
  //...
  success(response) {
    cb(response);
  }

2 个答案:

答案 0 :(得分:1)

您的数组需要是一个对象数组,而不是一个数组数组。您还可以将一个类赋予表的name列以访问其值,然后使用findIndex在数组中查找name属性的索引,然后使用splice将其删除。

  $(function(){
        var arr= [
          {"name": "John"},
          {"name": "Henry"}
       ];
       $('.dm').click(function(){
            var val = $(this).closest('tr').find(".name").text();
            console.log(val);
            var index = arr.findIndex(function(item) {return item.name == val})
            console.log(index)
            arr.splice(index, 1)
            console.log(arr);
        })
  })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="sum_table">
  <tr class="titlerow">   
    <th>S.N.</th>
    <th>Name</th>
    <th>Action</th>
</tr>
<tr>
    <td>1</td>
    <td class="name">John</td>
    <td><button class="dm" data-id="0">Remove</button></td>
</tr>
<tr>
    <td>2</td>
    <td class="name">Henry</td>
    <td><button class="dm" data-id="1">Remove</button></td>
</tr>

</table>

答案 1 :(得分:0)

假设您在点击事件中发送了此人的姓名,那么您可以使用array.splice方法,如下所示:

for(var i = arr.length - 1; i >= 0; i--) {
    if(arr[i] === name) {
       arr.splice(i, 1);
    }
}

您必须注意它将删除具有相同名称的数组中的所有值。

使用索引 - 只需在点击按钮上发送数据ID并在该索引上拼接数组

arr.splice(dataid, 1)