16

特定の ID を持つ要素が Angular ディレクティブ内の DOM に既に存在するかどうかを確認するにはどうすればよいですか? 要素を使用angular.element()すると、要素が存在しない場合に作成されます。たとえばangular.element('someID')、要素が既に存在するかどうかにかかわらず、要素を返します。

回避策として現在行っているのは、次の.html()ような jqLit​​e 関数を使用することです。

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

console.log('要素が既に存在する場合にのみ発生します');

}

これを行うより良い方法はありますか?このためだけにjQuery全体を含めることは避けたいと思います。

4

2 に答える 2

33

angular.element($document).find('#someElementID') と angular.element('#someElementID') の両方は、複数の dom ノードがセレクターに一致した場合に空の配列を返します。

次のことを行うと、かなり安全になるはずです。

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

また、jQLite .find() メソッドはタグ名のみをサポートすることに注意してください。

于 2014-06-20T15:34:09.700 に答える
0

私はテストしましたが、正常に動作しています..

ID が存在する場合、1 を返します

ID が存在しません。0 を返します

if(angular.element('#someElementID').length >0){
 console.log("Id is available.");
}else{
  console.log("Id is not available.");
}
于 2016-11-09T18:29:34.303 に答える