如何检查AngularJS中是否存在具有ID的元素

时间:2014-06-20 15:22:50

标签: javascript angularjs jqlite

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

我现在正在做的解决方法是使用.html() jqLit​​e函数,如下所示:

  

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

     
    

console.log('仅当元素已经存在时才触发');

  
     

}

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

2 个答案:

答案 0 :(得分:32)

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

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

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

另请注意,jQLite .find()方法仅支持标记名称。

答案 1 :(得分:0)

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

如果ID为Exists,则返回1

ID不存在,返回0

if(angular.element('#someElementID').length >0){
 console.log("Id is available.");
}else{
  console.log("Id is not available.");
}