我正在定義JSON文件中的項目列表並在網頁上顯示該列表。目的是讓用戶點擊該列表中的任何項目來顯示該項目的更多信息(保存在同一個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>
我正打算沿
var userSelection = document.getElementsByClassName('menu');
在演唱會上線使用的東西與
userSelection.addEventListener('click', myFunctionToPrintDetails());
,但我不知道如何將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」值,假定您沒有使用處理程序的lambda表達式(箭頭函數)。 – traktor53