我正在从JSON文件中定义一个项目列表,并在网页上显示该列表。意图是让用户单击列表中的任何项目以显示有关该项目的更多信息(该信息保存在同一JSON文件中)。
该列表的所有项目都是同一类的成员,每个项目都有一个从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
集合中的每个元素。使用函数名称myFunctionToPrintDetails
添加监听器,而不是调用该函数。在处理程序内,被点击的元素是this
值,假设您没有为处理程序使用lambda表达式(箭头函数)。 - traktor