【发布时间】:2019-07-10 20:09:21
【问题描述】:
我需要创建一个事件侦听器,当用户单击 HTML 中的列表项之一时触发。该操作应调用名为 listItemText 的函数,该函数返回被单击的列表项的 innerText——即:如果他们点击第一个 li 它应该记录“Walk the dog”
我已经尝试了所有我能想到的方法来获取被点击的 li 项目的正确对应的 innerText。充其量,我已经在 console.log 中获得了整个列表,或者列表的最后一个元素。
在这一点上我已经尝试了很多事情,以至于无法回忆起来。下面的代码或多或少是我尝试过的代码的变体
<ul id="todo-app">
<li class="item">Walk the dog</li>
<li class="item">Pay bills</li>
<li class="item">Make dinner</li>
<li class="item">Code for one hour</li>
</ul>
var targetUl = document.getElementById('todo-app').childNodes;
this.addEventListener('click', listItemText);
function listItemText(event) {
var liClicked = event.target;
for (i=0; i<targetUl.length; i++) {
if (liClicked == 'LI') {
console.log(targetUl[i].innerText)
}
}
}
我希望获得 li 标签的文本内容,但此时我一直未定义。非常感谢您的帮助。
【问题讨论】:
标签: javascript html addeventlistener innertext