[解決済み] クラス名やIDで要素を取得する方法
2022-08-07 23:08:53
質問
angularjsでhtmlの要素を探そうとしています。
以下がそのhtmlです。
<button class="btn btn-primary multi-files" type="button">
<span>Choose multiple files</span>
</button>
<br/><br/>
<input ng-file-select type="file" multiple style="display: none"/><br/>
クラス名でボタン要素を取得しようとしているのですが、multi-filesで試したところ
var multibutton = angular.element(element.getElementsByClassName(".multi-files"));
しかし、うまくいかず、試しに
element.find
を試してみましたが、タグに対してのみ動作します。
angularjsでidやclassnameで要素を取得する関数はありますか?
どのように解決するのですか?
getElementsByClassName
はDOM Documentに対する関数です。jQueryやjqLiteの関数ではありません。
使用する際は、クラス名の前にピリオドを付けないでください。
var result = document.getElementsByClassName("multi-files");
jqLite(Angularより先にjQueryがロードされている場合はjQuery)でラップします。
var wrappedResult = angular.element(result);
から選択したい場合は
element
から選択したい場合は、jqLite の参照ではなく、DOM の参照にアクセスする必要があります -。
element[0]
の代わりに
element
:
link: function (scope, element, attrs) {
var elementResult = element[0].getElementsByClassName('multi-files');
}
あるいは
document.querySelector
関数を使うこともできます(クラスで選択する場合はここにピリオドが必要です)。
var queryResult = element[0].querySelector('.multi-files');
var wrappedQueryResult = angular.element(queryResult);
関連
-
[解決済み] angularJSのSTATEを理解する
-
[解決済み] AngularJSの「href」と「ng-href」の違いについて
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] AngularJSのコントローラを指定する:ngControllerと$routeProviderを使用する利点
-
[解決済み] Angular JSによるシンプルなポップアップ
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] ng-repeat を用いたリストのページネーション
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] `ui-router` $stateParams vs. $state.params
-
[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。
-
[解決済み] ページロード時にAngularJSのコントローラ関数を実行する方法は?
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] どのようにangularJSでrouteProviderとlocationProviderを設定するのですか?
-
[解決済み] AngularJS の ng-disabled ディレクティブに式を指定しても動作しない
-
AngularJS がエラー $digest already in progress を報告する
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] ng-repeat :単一フィールドによるフィルタリング
-
[解決済み] AngularJSのサービスをコンソールからテストするにはどうしたらいいですか?