bdqn_wanghaoyu 发表于 2016-1-26 15:00:59

使用splice()批量删除选中的选项时遇到的问题

for (var i = 0; i < $scope.portalListData.length; i++) {
    if ($scope.portalListData[i].checked) { //选中的
      $scope.portalListData.splice($scope.portalListData.indexOf($scope.portalListData[i]), 1);
    } else {
    }
}
如上 删除会出现问题,比如选中八个只会删除四个,选中四个删除两个,此处一个解决方法就是 在删除掉本条之后,即   $scope.portalListData.splice($scope.portalListData.indexOf($scope.portalListData[i]), 1);这一句之后加一句 i-- 就可以解决了!
for (var i = 0; i < $scope.portalListData.length; i++) {
    if ($scope.portalListData[i].checked) { //选中的
      $scope.portalListData.splice($scope.portalListData.indexOf($scope.portalListData[i]), 1);      i--;
    } else {
    }
}

admin 发表于 2016-1-27 10:21:51

这样的话你循环过滤一下就可以了,不需要再一个一个删除了。

循环过滤的时候,没有选中的放在一个数组/对象,选中的过滤掉

然后在把新数组的值给以前的对象/数组
页: [1]
查看完整版本: 使用splice()批量删除选中的选项时遇到的问题