Как проверить, существует ли элемент с идентификатором в AngularJS
Как проверить, существует ли элемент с определенным идентификатором в моей DOM внутри директивы Angular? Используя angular.element()
, элемент создается, если его не существует, например angular.element('someID')
возвращает элемент, уже существующий или нет.
Что я сейчас делаю в качестве обходного пути, использую функцию .html()
jqLite следующим образом:
if (angular.element('# someElementID'). html()) {
console.log( "только срабатывает, если элемент уже существует" );
}
Есть ли лучший способ сделать это? Я хотел бы избежать включения всего jQuery только для этого.
Ответы
Ответ 1
Оба angular.element($ document).find('# someElementID') и angular.element('# someElementID') возвращают пустой массив, если несколько dom-узлов соответствуют селектору.
Вы должны быть достаточно безопасны, делая следующее:
if ( angular.element('#someElementID').length ) {
console.log('#someElementID exists');
}
Также имейте в виду, что метод jQLite.find() поддерживает только имена тегов.
Ответ 2
Я тестировал, его работала нормально.
Если идентификатор существует, он возвращает 1
Идентификатор отсутствует, он возвращает 0
if(angular.element('#someElementID').length >0){
console.log("Id is available.");
}else{
console.log("Id is not available.");
}