Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中选择一行后,如何取消选择其他行?_Javascript_Select_Row - Fatal编程技术网

在javascript中选择一行后,如何取消选择其他行?

在javascript中选择一行后,如何取消选择其他行?,javascript,select,row,Javascript,Select,Row,我有一个包含用户信息的表。 我想选择一行(一个对象)并显示选择图标,选择一行后,我想取消选择另一行(上一个选定行) 但是,在我的代码中,如果不再次选择行,则会累积选择行 我创建的代码: this.selectRow = function (row) { if (this.isClickable()) { $scope.properties.selectedRow = row; } if (row.selected === undefined) row.selecte

我有一个包含用户信息的表。 我想选择一行(一个对象)并显示选择图标,选择一行后,我想取消选择另一行(上一个选定行) 但是,在我的代码中,如果不再次选择行,则会累积选择行

我创建的代码:

  this.selectRow = function (row) {

  if (this.isClickable()) {
  $scope.properties.selectedRow = row;
  }
  if (row.selected === undefined)
    row.selected = false;
    row.selected = !row.selected;  

 }; 

 this.isSelected = function(row) { 
 return angular.equals(row, $scope.properties.selectedRow) ;
 }; 
HTML表格为:

<tbody ng-if="ctrl.isArray(properties.content) && ctrl.isArray(properties.columnsKey)">
        <tr ng-repeat="row in properties.content" ng-click="ctrl.selectRow(row)" ng-class="{'info': ctrl.isSelected(row)}">
            <td>&nbsp;&nbsp;<span class="glyphicon glyphicon-ok" ng-show="row.selected"></span></td>
             <td ng-if="!properties.allowHTML" ng-repeat="column in properties.columnsKey track by $index">
                {{ $eval(column, row) | uiTranslate }}
            </td>
            <td ng-if="properties.allowHTML" ng-repeat="column in properties.columnsKey track by $index">
                <div ng-if="properties.allowHTML" ng-bind-html="$eval(column, row) | uiTranslate"></div>
            </td>
        </tr>
    </tbody>

{{$eval(列、行){uiTranslate}
它似乎工作正常,我可以选择和取消选择行和图标显示隐藏正确。 但是,我需要取消选择之前已选择的行

选定的行对象是:

{ “用户名”:“user1”, “用户ID”:“23”,
“选定”:真 } { “用户名”:“user1”, “用户ID”:“23”,
“选定”:false }

任何帮助都将不胜感激
谢谢。

我正在重置上一行。我正在将其属性设置为false

this.selectRow=函数(行){
//如果已选择行,请取消选择该行。
如果(选定行){
row.selected=false;
}否则{
//查找以前选择的行。
const isRowSelected=$scope.properties.content.filter((项)=>item.selected==true);
如果(isRowSelected.length>0){
//如果成功找到行,则将该行标记为取消选择
$scope.properties.content.filter((项)=>item.selected==true)[0]。selected=false;
}
//将新行标记为选中
row.selected=true;
}
if(this.isClickable()){
$scope.properties.selectedRow=行;
}
如果(选定行===未定义){
row.selected=false;
}
};
this.isSelected=函数(行){
返回angular.equals(行$scope.properties.selectedRow);

};如果您的行有一个类,您可以在选择您单击的行之前取消选择所有行。谢谢您的回答。但是,我无法获得正确的函数。我在vendor.min.js:105 TypeError:无法在vendor.min.js:203在f(vendor.min.js:220)在m.$eval(vendor.min.js:129)在m.$apply(vendor.min.js:129)在HTMLTableRowElement中设置未定义的属性'selected'。(vendor.min.js:220)在HTMLTableRowElement.c(vendor.min.js:35)你有什么想法吗?你能不能创建angular js fiddle,我很容易理解你的问题。对于给你带来的不便,我深表歉意,我已经更新了代码。如果有一行的选定值为true,则我会将该行的选定值重置为false。在看不到错误的情况下修复它是非常困难的。如果当前的实现没有解决问题,请创建一个显示问题的基本工作演示。非常感谢。我正在尝试创建一个js小提琴。我将尽可能地进行测试和更新。谢谢,不用担心,请仔细检查,如果它解决了您的问题,请告诉我。如果没有,请做一个JSFIDLE。谢谢