我正在使用一个指令,我在其链接函数中获得了DOM元素,并且我有一个我想要访问的元素。
即
// element = <directive>
// ...
// <div id="target"></div>
// ...
// </directive>
如果我想获取该元素,例如要执行.click()
事件,我需要使用“document
”对象,因为我还没有找到直接去的方法一次到这个#target
元素。
有关正确方法的任何想法吗?
不幸的是,jqLite只为我们提供find()
功能,您无法按id
进行搜索而不是class
答案 0 :(得分:0)
就个人而言,当我使用angularjs时,我将所有内容都包装在一个新的引用中,该引用会自动使用querySelectorAll来定位DOM,如下所示:
YOUR_APP.run(function() {
jqLite = function(selector) {
var selectorResult = (typeof selector == 'object') ? selector : document.querySelectorAll(selector)
return angular.element(selectorResult)
};
})
所以我可以使用它&#34;像jQuery&#34;,使用:jqLite('body > div').addClass('whatever');
在极少数情况下,这不会像jQuery那样表现,例如,通过使用querySelectorAll,你不再获得带有结果的对象数组,就像jQuery会做的那样,但是一个nodeList,所以你不能例如,应用forEach方法,但有一些简单的解决方法。 每当新的参考jqLite不能完成这项工作时,你总是可以直接使用angular.element。
但这应该满足99%的大多数jQuery需求:)
希望这有帮助。