在angularjs中使用$ document.querySelectorAll

时间:2016-09-22 14:10:08

标签: javascript angularjs

理想情况下,$documentangular.element(window.document)的包装器 $document.querySelectorAll()应该可以正常工作,但我收到的错误是它不是函数。有人可以解释一下吗?

4 个答案:

答案 0 :(得分:2)

如果您想使用$document,您应该注射它(您可以使用任何其他方式注入它):

     angular.module('someModule', [])
         // instead of 'controller' use whatever it is...
         .controller ('SomeName', ['$document', function($document) { 
             // ...
         }]);

然后你可以使用查询选择器(注意使用[0]):

$document[0].querySelectorAll(/* whatever */);

答案 1 :(得分:1)

你应该只能使用......

document.querySelectorAll(..)

省略$,因为你不需要jQuery lite,因为你只是使用DOM API。否则使用jQuery lite方法... this link seems pertinent

答案 2 :(得分:1)

通过在angular中使用jqlite .find()方法解决了这个问题。

$document.find('tagName.className')

答案 3 :(得分:0)

您必须使用angular.element(document.querySelector().jqLiteMethods());

例如

angular.element(document.querySelector('#dis-caret-drop')).find('.caret').css({'opacity' : 0.4});

这将选择ID为 ' dis-caret-drop' 的元素,并使用类子元素> ' caret' 并将子元素的不透明度更改为0.4