angular.element 和 document.getElementById 有什么区别

what is the difference between angular.element and document.getElementById

Angularjs 通过 id 获取元素:您可以使用 angular.element(‘#element_id’); 通过 id 获取元素,其中 #element_id 是元素的 id。

这是 angularjs 中 javascript document.getElementById 的替代方案 –

Angularjs 通过 id 获取元素:

var currentElement = angular.element('#element_id');

但是angular.elementdocument.getElementById

有什么区别

当您 select 使用 angular.element(或 jQuery)ID 的对象时,它采用快捷方式并使用 document.getElementById.

最大的区别是angular.element is a jQuery别名,而returns一个jQuery(或jQuery精简版)对象。

document.getElementById is a native DOM method, which returns an HTMLElement object.


tl:dr;

始终阅读文档

我想补充一下 @evolutionxbox 的答案,document.getElementById 应该比 angular.element 稍微快一点,因为它不必去通过确定传递给函数的内容以及应基于此采取哪些步骤的例程。

关于什么时候应该使用什么。由于这两个方法 return 不同的对象类型(jquery vs HTMLElement),您可以 select 该方法基于您的应用程序中的标准做法 - 是否使用 jquery 元素或用于操作的本机 dom 元素,或者您要对它们执行的操作,因为使用 jquery 对象比使用本机 HTMLElement 更容易执行某些操作。

例如,如果你想使用任何 jquery 方法,比如 .hasClass() 你需要像这样包装元素 angular.element(document.getElementById('some')).hasClass(),所以使用 [=14 更容易=] 排在首位。

通常,我会选择 angular.element 方法,因为它是 angular 的本机指令中的首选方法。