こんにちは。エキサイトでデザイナーをしている齋藤です。
エキサイトホールディングス Advent Calendar 2024 シリーズ2の3日目を担当します。
今回は、Alpine.jsのMagicである $el
と$refs
を使用して、DOMノードにアクセスする方法をご紹介します。
自要素のDOMノードにアクセスする場合
自要素のDOMノードにアクセスする場合は、$el
を使用します。
$el
はgetElementById()
等の代替のようなもので、それ以下は通常のJSと同じくElementプロパティを書くことができます。
例えば、自要素のinnerHTML
を操作する場合は以下のようになります。
See the Pen Alpine.jsの$elで自要素のDOMノードにアクセス by AyumuSaito (@ayumusaito-excite) on CodePen.
<button x-data type="button" @click="$el.innerHTML='クリックされました!'" > クリックしてinnerHTMLを更新 </button>
他要素の
DOMノードにアクセスする場合
他要素のDOMノードにアクセスする場合は、$refs
を使用します。
その際、アクセス先の要素にはx-ref
で識別子を付与しておき、$refs.{識別子}
でアクセスします。
See the Pen Alpine.jsの$refsで他要素のDOMノードにアクセス by AyumuSaito (@ayumusaito-excite) on CodePen.
<div x-data> <p x-ref="target">アクセス先の要素</p> <button type="button" @click="$refs.target.innerHTML='クリックされました!'" > クリックしてアクセス先の要素の文字を変更する </button> </div>
さいごに
今回は、Alpine.jsのMagicである $el
と$refs
を使用して、DOMノードにアクセスする方法をご紹介しました。
Alpine.jsを使用される方の一助となれば幸いです。
ご精読ありがとうございました。