5

我正在编写一个指令,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 来完成这个?

4

2 回答 2

3

如果不要求支持 IE7 或更早版本,则可以使用querySelectorAll方法Element

var controls = element[0].querySelectorAll('.ng-invalid, .ng-valid');
[].forEach.call(controls, function (ctl) {
    var c = angular.element(ctl);               
    ...
});
于 2014-06-15T08:12:59.293 回答
-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
}
于 2016-09-08T07:25:30.877 回答