1. ホーム
  2. angularjs

[解決済み] jqLiteでclassnameで要素を選択するには?

2022-11-16 22:41:12

質問

Angular.jsのアプリからjqueryを削除して軽量化し、代わりにAngularのjqLiteを入れようと思っています。しかし、アプリはfind('#id')とfind('.classname')を多用しており、これはjqLiteではサポートされておらず、「タグ名」だけです(ドキュメントによる)。

を変更するための最良のアプローチは何だろうかと思いました。私が考えた1つのアプローチは、カスタムHTMLタグを作成することです。 変更

<span class="btn btn-large" id="add-to-bag">Add to bag</span>

<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>

$element.find('#add-to-bag') 

から

$element.find('a2b')

何かご意見、ご感想はありますか?

感謝

Lior

どのように解決するのですか?

基本的には、@kevin-b さんのご指摘の通りです。

// find('#id')
angular.element(document.querySelector('#id'))

//find('.classname'), assumes you already have the starting elem to search from
angular.element(elem.querySelector('.classname'))

注意 もしこれをコントローラから行いたいのであれば、のセクションを参照してください。 開発者ガイド を参照し、プレゼンテーションロジックを適切なディレクティブ (<a2b ...> など) にリファクタリングしてください。