find vs querySelector AngularJS

时间:2015-12-17 19:38:33

标签: javascript angularjs find

我使用AngularJS,当我使用querySelector

时出错
angular.element(angular.element(e).querySelector('.open')).removeClass('open');

如果我使用

angular.element(angular.element(e).find('.open')).removeClass('open');

没有问题。

错误:

TypeError:angular.element(...)。querySelector不是函数

2 个答案:

答案 0 :(得分:0)

querySelector不是Angular函数。这是一个原始JavaScript document function,可以在原始DOM元素上使用。

所以,鉴于此处的信息是如何修改代码以获得相同的结果:

angular.element(angular.element(e)[0].querySelector('.open')).removeClass('open');

答案 1 :(得分:0)

querySelector是DOM元素的方法,而不是angular.elementjqLite)。

为了将querySelector与jqLit​​e实例一起使用,首先需要获取原始HTMLElement:

angular.element(angular.element(e)[0].querySelector('.open')).removeClass('open');

angular.element(e)是一个angular.element实例,它是HTMLElement的类似数组的对象。您可以通过索引访问单个HTMLElements,这就是您使用angular.element(e)[0]之类的原因。