Javascript 按类查找角度元素的最佳方法是什么?

Javascript 按类查找角度元素的最佳方法是什么?,javascript,jquery,css,html,angularjs,Javascript,Jquery,Css,Html,Angularjs,嘿,谢谢你检查我的问题。我试图按类查找角度元素,并将它们放入另一个函数的数组中 $scope.find = function () { var someVar = []; $scope.element.find('.selectedRow').each(function(){ someVar.push($(this).find('td').eq(0).text()) }) return rows; console.log(rows);

嘿,谢谢你检查我的问题。我试图按类查找角度元素,并将它们放入另一个函数的数组中

 $scope.find = function () {
    var someVar = [];
    $scope.element.find('.selectedRow').each(function(){
        someVar.push($(this).find('td').eq(0).text())

    })
    return rows;
    console.log(rows);
};
你可以利用

angular.element(element);
对你来说呢

angular.element(document.querySelector('.selectedRow'))

元素可以作为类选择器的位置首先,我强烈建议阅读以下关于如何“思考”的答案:


对于angular,您需要考虑模型,而不是DOM。因此,您应该将一些
ng单击
s添加到您的行中,以将它们添加到数组中(取消选择时可能会将它们从数组中删除)。然后,您的模型中已经有了您的数组,而不需要从DOM中进行任何选择。

我建议使用(创建)一个指令来实现这一点。

正如dnc253所述,从控制器中引用DOM并不是一种有效的角度开发方法。另一种方法是:

将表中的数据从控制器注入视图:

.controller('controllerName', ['$scope', function($scope) {
    $scope.rows = [
        { col1: 'foo', col2: 'bar', selected: false },
        { col1: 'baz', col2: 'foo', selected: false }
    ];
}]);
使用ng repeat指令在视图脚本中渲染模型:

<table>
    <tr ng-repeat="row in rows" ng-click="toggleRow(row)">
         <td>{{ row.col1 }}</td>
         <td>{{ row.col2 }}</td>
    </tr>
</table>

现在,您可以从控制器中跟踪所选行,因为每一行都具有selected属性。

在控制器中使用DOM是一个带有角度的巨大红色标志。你到底想做什么?我有一个表,我可以在其中单击行来选择它们,我试图实现一个函数来根据选择查找行,并仅过滤所选行。
$scope.toggleRow = function (row) {
    row.selected = !row.selected;
}