Comment puis-je vérifier si un élément avec un ID spécifique existe déjà dans mon DOM dans une directive Angular? En utilisant angular.element()
, un élément est créé s'il n'en existe pas. Par exemple, angular.element('someID')
retournera un élément, qu'il en existe déjà ou non.
Ce que je fais maintenant comme solution consiste à utiliser la fonction .html()
jqLite comme ceci:
if (angular.element ('# someElementID') . html () ) {
console.log ('ne se déclenche que si l'élément existe déjà');
}
Y a-t-il une meilleure manière de faire cela? Je voudrais éviter d'inclure l'ensemble de jQuery juste pour cela.
Angular.element ($ document) .find ('# someElementID') et angular.element ('# someElementID') renvoient un tableau vide, au cas où plusieurs nœuds dom correspondent au sélecteur.
Vous devriez être assez sûr de faire ce qui suit:
if ( angular.element('#someElementID').length ) {
console.log('#someElementID exists');
}
Notez également que la méthode jQLite .find () ne prend en charge que les noms de balises.
J'ai testé, ça marche bien ..
Si l'ID est existant, il retourne 1
L'ID n'est pas existant, il retourne 0
if(angular.element('#someElementID').length >0){
console.log("Id is available.");
}else{
console.log("Id is not available.");
}