Angular 2の特定のクラス名を持つ「すべて」の要素を見つける方法を誰でも手伝うことができますか?.
<span class="classImLookingFor">foo</span>
<span class="classImLookingFor">Voo</span>
<span class="classImLookingFor">Moo</span>
私が下にあることを行うことで、クラス「classImLookingFor」を持つすべての要素を返すと思いましたが、それは最初のインスタンスのみを返します。
constructor(private renderer: Renderer){}
ngAfterViewInit(){
const el = this.renderer.selectRootElement('.classImLookingFor');
this.renderer.setElementAttribute(el, 'tabindex', 0);
}
その後、私のマークアップは次のようになります。
<span class="classImLookingFor" tabindex="0">foo</span>
<span class="classImLookingFor">Voo</span>
<span class="classImLookingFor">Moo</span>
レンダラー配列を作成できるはずですが、それでもうまくいかないようです。そのクラス名で各要素を操作する必要があります。前もって感謝します
これはDOMのすべての要素を返しませんか? Angularコンポーネント「in」で生成された要素のみを返す方法はありますか?
必要がある...
ElementRef
にconstructor
を挿入します
constructor(private renderer: Renderer, private elem: ElementRef){}
querySelectorAll
apiを使用して、検索している要素を見つけます。
ngAfterViewInit(){
// you'll get your through 'elements' below code
let elements = this.elem.nativeElement.querySelectorAll('.classImLookingFor');
}
@ Aravind が提供する答えは、DOM全体を検索するため、パフォーマンスに最適ではありません。
このソリューションは、現在のコンポーネント内のDOMを検索するだけです。
コメントがOPで機能したため、回答。
あなたが使用する必要があります
document.querySelectorAll('.classImLookingFor')
これはユースケースに対して少し単純化しすぎかもしれませんが、ネイティブDOM関数を使用できない理由はありますか?
var domRepresentation = document.getElementsByClassName('classImLookingFor');
var angularElement = angular.element(domRepresentation);
あなたはDOMを角度で使用する必要があります
var element=document.getElementsByClassName("X").item(0);
わたしにはできる!