AngularJS:如何通过id获取DOM元素

时间:2015-09-09 10:04:54

标签: javascript css angularjs dom

示例

请考虑Plunkr

我需要什么

我需要能够通过它的id来获取元素。

示例代码应该能够将css类分配给当前视图中存在的任何DOM元素。

应使用源对象检查,由控制器中的$ scope提供。此源对象可能/将具有比视图上的输入元素更多的属性。

所以我想循环遍历每个对象键,看看是否存在相应的DOM元素。如果是这样,请验证它的价值。

问题

我如何通过id获取元素,仅使用AngularJS(不允许使用jQuery !!)?

特别是对于Plunkr,我需要这个功能(真的)工作:

self.IsFieldCurrentlyActive = function(field){
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return (inputElement != 'undefined');

  // Sample only
  var idx = field.indexOf('Unused');
  return idx == -1;
};

这一个(基本相同):

self.GetElementByKey = function(key)
{
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return inputElement;

  // Sample only
  return null;
}

更新

道歉,我忘了添加一个重要的要求:我不能使用任何假定唯一ID的机制,因为可能会出现多次相同形式(以及相同的ID)。所以,我需要尊重Angular范围。

谢谢!

2 个答案:

答案 0 :(得分:10)

在纯JS中,您可以document.querySelector('#myID');

使用angular.element在angular中: angular.element(document.querySelector('#myID'));

答案 1 :(得分:1)

而是尝试angular.element($('#myElement'));