在我的JS中,我有一个查询选择器,如下所示:
angular.element(document.querySelector('#formatSearch').blur());
我在某些情况下收到错误,因为此元素不存在。如果选择器不导致null,有没有办法可以有条件地执行此模糊?
例如:
if (angular.element(document.querySelector('#formatSearch')) !== null) {
angular.element(document.querySelector('#formatSearch').blur());
}
在这种情况下,我仍然收到同样的错误。 (null不是对象)
答案 0 :(得分:2)
angular.element()
实际上是jqLite()
或jQuery()
,相当于document.querySelector()
。那么为什么不尝试这个:
angular.element('#formatSearch').blur();
编辑: this fiddle证明我的假设是错误的。看起来jqLite不支持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();
}