Angularディレクティブ内のDOMに特定のIDの要素が既に存在するかどうかを確認するにはどうすればよいですか?angular.element()
を使用して、存在しない場合に要素が作成されます。例angular.element('someID')
は、要素がすでに存在しているかどうかに関係なく要素を返します。
回避策として私が今行っているのは、次のような.html()
jqLite関数を使用することです。
if(angular.element( '#someElementID').html()){
console.log( '要素がすでに存在する場合にのみ発生します');
}
これを行うより良い方法はありますか?このためだけにjQuery全体を含めることは避けたいと思います。
Angular.element($ document).find( '#someElementID')とangular.element( '#someElementID')は両方とも、複数のdomノードがセレクターと一致した場合に空の配列を返します。
次のことを行うと、かなり安全になるはずです。
if ( angular.element('#someElementID').length ) {
console.log('#someElementID exists');
}
また、jQLite .find()メソッドはタグ名のみをサポートすることに注意してください。
私はテストしましたが、正常に動作しています。
IDが存在する場合、1を返します
IDは存在しません。0を返します
if(angular.element('#someElementID').length >0){
console.log("Id is available.");
}else{
console.log("Id is not available.");
}