16

如何检查具有特定 ID 的元素是否已存在于我的 DOM 中的 Angular 指令中?angular.element()如果一个元素不存在,则通过使用创建一个元素,例如angular.element('someID'),无论一个元素是否已经存在,都会返回一个元素。

我现在正在做的一种解决方法是使用这样的.html()jqLit​​e 函数:

if(angular.element('#someElementID'). html() ) {

console.log('只有元素已经存在才触发');

}

有一个更好的方法吗?我想避免仅仅为此包含整个 jQuery。

4

2 回答 2

33

angular.element($document).find('#someElementID') 和 angular.element('#someElementID') 都返回一个空数组,以防多个 dom 节点与选择器匹配。

您应该非常安全地执行以下操作:

if ( angular.element('#someElementID').length ) {
    console.log('#someElementID exists');
}

还要记住 jQLite .find() 方法只支持标签名称。

于 2014-06-20T15:34:09.700 回答
0

我已经测试过,它工作正常..

如果 ID 存在,则返回 1

ID 不存在,返回 0

if(angular.element('#someElementID').length >0){
 console.log("Id is available.");
}else{
  console.log("Id is not available.");
}
于 2016-11-09T18:29:34.303 回答