JSONファイルからアイテムのリストを定義し、そのリストをWebページに表示します。ユーザーがそのリスト内の項目をクリックすると、その項目に関する詳細情報(同じJSONファイルに保持されている情報)が表示されます。addEventListenerとgetElementsByClassNameを使用して要素IDを渡す
このリストのすべての項目は同じクラスのメンバーであり、それぞれにJSONファイルから定義された一意のIDがあります。 HTMLは次のようになります。
<ul>
<li class="menu" id="bob">Robert Smith</li>
<li class="menu" id="jane">Jane Doe</li>
<li class="menu" id="sue">Susan Carter</li>
</ul>
私は
userSelection.addEventListener('click', myFunctionToPrintDetails());
でのコンサートで
var userSelection = document.getElementsByClassName('menu');
の線に沿って何かを使用することを計画していたが、私はわかりません印刷する詳細を決定するためにイベントリスナーから印刷関数にidを渡す方法。
私はHTML/CSSで多くの経験を持っていますが、JSON/AJAXではほとんど経験がありませんので、私はこれを完全にベースにしていきます。これを行うためのより適切な方法がある場合は、フィードバックに公開しています。
私は両方の答えを試しましたが、いずれもうまくいきませんでした。私がuserSelection.lengthをコンソールに記録すると、私は0を取得します。私はuserSelectionをログインしたときに私が取得:
HTMLCollection(0)
> sue: li#sue.menu
length: 3
> jane: li#jane.menu
> bob: li#bob.menu
> 0: li#bob.menu
> 1: li#jane.menu
> 2: li#sue.menu
'userSelection'コレクションの_each_要素にリスナーを追加します。関数の呼び出しではなく、関数名 'myFunctionToPrintDetails'を使用してリスナーを追加します。ハンドラのラムダ式(矢印関数)を使用していないと仮定すると、ハンドラの中でクリックされた要素は 'this'値です。 – traktor53