如何检查Angular指令中的DOM中是否已存在具有特定ID的元素?通过使用angular.element()
,如果某个元素不存在,则会创建该元素,例如angular.element('someID')
将返回一个元素,无论该元素是否已存在。
我现在正在做的解决方法是使用.html()
jqLite函数,如下所示:
if(angular.element('#someElementID')。 html()){
console.log('仅当元素已经存在时才触发');
}
有更好的方法吗?我想避免为此包含整个jQuery。
答案 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.");
}