Javascript 输入:不([type=";checkbox";])不在角度测试中工作

Javascript 输入:不([type=";checkbox";])不在角度测试中工作,javascript,angularjs,karma-mocha,Javascript,Angularjs,Karma Mocha,下面是我在beforeach函数中编译的模板 template = '<form name="configForm">' + '<input type="number"/>' + '<input type="checkbox"/>' + '<input type="text"/>' + '<div c

下面是我在beforeach函数中编译的模板

template = '<form name="configForm">' +
                  '<input type="number"/>' +
                  '<input type="checkbox"/>' +
                  '<input type="text"/>' +
                  '<div class="form-error" ng-show="configForm.$error.max">Error</div>' + 
                  '</form>';
element = angular.element(template);   
element = $compile(element)($scope);
但当我这样使用它时,它是有效的:

var dirElementInput = element.find('input');
console.log(dirElementInput); 
console.log(dirElementInput.length);

Object{0: <input type="number">, 1: <input type="checkbox">, 2: <input type="text">, length: 3}

LOG: 3
var dirElementInput=element.find('input');
console.log(dirElementInput);
console.log(dirElementInput.length);
对象{0:,1:,2:,长度:3}
日志:3

Angular使用的jQueryLite,
find()
方法被限制为按标记名查找,因此您不能像在完整的jQuery库中那样使用
:而不是

另一种方法是编写一个小方法来过滤输入类型


作为参考,这里是Angular使用的jQueryLite上的
find()
find()
方法仅限于按标记名查找,因此您不能像在完整的jQuery库中那样在这里使用
:而不是

另一种方法是编写一个小方法来过滤输入类型


以下是关于
find()

的参考资料,AngularJs使用jQlite进行DOM操作,这是jQuery DOM操作库的轻量级实现。问题是jQlite不支持这些复杂的选择器,根据:

find()
-仅限于按标记名查找

angular.element
-请记住,此函数不会通过标记名/CSS选择器查找元素。要按标记名查找,请尝试使用
angular.element(document).find(…)
$document.find()
,或使用标准的DOM API,例如
document.querySelectorAll()

因此,如果您想使用复杂选择器,可以改用jQuery,或者使用
documento.querySelector()

要将AngularJs与jQuery而不是jQlite一起使用,可以使用指令,这样angular将查看
window.jQuery
而不是其内部jQlite

<!doctype html>
<html ng-app ng-jq="jQuery">
...
...
</html>

AngularJs使用jQlite进行DOM操作,这是jQuery DOM操作库的轻量级实现。问题是jQlite不支持这些复杂的选择器,根据:

find()
-仅限于按标记名查找

angular.element
-请记住,此函数不会通过标记名/CSS选择器查找元素。要按标记名查找,请尝试使用
angular.element(document).find(…)
$document.find()
,或使用标准的DOM API,例如
document.querySelectorAll()

因此,如果您想使用复杂选择器,可以改用jQuery,或者使用
documento.querySelector()

要将AngularJs与jQuery而不是jQlite一起使用,可以使用指令,这样angular将查看
window.jQuery
而不是其内部jQlite

<!doctype html>
<html ng-app ng-jq="jQuery">
...
...
</html>
var inputs = angular.element(document).find('input');

var nonCheckBoxArray = [].filter.call(elements, function(elm) {
    return elm.type != 'checkbox';
});

var inputsNonCheckBox = angular.element(nonCheckBoxArray);