如何使用angular.element查找并迭代多个元素?

时间:2014-06-14 18:12:57

标签: angularjs jqlite

我正在AngularJS中编写一个指令,我需要做的一件事就是找到表单中的所有控件并迭代它们。

如果加载jQuery,我会这样做:

var inputs = element.find(".ng-invalid,.ng-valid");
inputs.each(function ()
{
    var i = $(this);               

});

但是由于它没有加载而我只有Angular我只能想做类似的事情:

var inputs = element.find("input");
//for loop thru this
var selects = element.find("select");
//for loop thru this
//....etc

使用jQLite有更好的方法来实现这个目标吗?

2 个答案:

答案 0 :(得分:3)

如果 not a requirement 支持IE7或更早版本,则可以使用Element querySelectorAll 方法:

var controls = element[0].querySelectorAll('.ng-invalid, .ng-valid');
[].forEach.call(controls, function (ctl) {
    var c = angular.element(ctl);               
    ...
});

答案 1 :(得分:-1)

使用for循环。

var inputs = element.find(".ng-invalid,.ng-valid");
for (var index=0; index < inputs.length; index++) {
  var subElement = angular.element(inputs)[index];
  // do something with subElement
}