处理空查询选择器

时间:2015-10-08 18:47:36

标签: javascript angularjs

在我的JS中,我有一个查询选择器,如下所示:

  angular.element(document.querySelector('#formatSearch').blur());

我在某些情况下收到错误,因为此元素不存在。如果选择器不导致null,有没有办法可以有条件地执行此模糊?

例如:

  if (angular.element(document.querySelector('#formatSearch')) !== null) {
    angular.element(document.querySelector('#formatSearch').blur());
  }

在这种情况下,我仍然收到同样的错误。 (null不是对象)

1 个答案:

答案 0 :(得分:2)

angular.element()实际上是jqLite()jQuery(),相当于document.querySelector()。那么为什么不尝试这个:

angular.element('#formatSearch').blur();

编辑: this fiddle证明我的假设是错误的。看起来jqLit​​e不支持CSS选择器来查找元素。

此外,您应该在.blur()返回的对象上调用angular.element()。因此,将行更改为:

angular.element(document.querySelector('#formatSearch')).blur();

要解决元素不存在时遇到的错误,请将代码更改为:

if (document.querySelector('#formatSearch')) {  // true only when 'formatSearch' is present
  angular.element(document.querySelector('#formatSearch')).blur();
}