提问人:Joe.sexton 提问时间:11/7/2023 最后编辑:Heretic MonkeyJoe.sexton 更新时间:11/7/2023 访问量:39
如何在 ul 中记录特定文本?
How to log specific text in an ul?
问:
我无法弄清楚如何控制台记录 li 内部的 innerText,而不是嵌套在 li 内部的 p。
[HTML全文]
<ul id="list">
<li>Tank
<p>this is tank</p>
</li>
<li>Warrior
<p>this is warrior</p>
</li>
<li>Ninja
<p>this is ninja</p>
</li>
</ul>
JavaScript的
const listChoice = document.querySelectorAll('li')
listChoice.forEach(cls => {
cls.addEventListener('click', (e) => {
const choice = e.target.innerText
console.log(choice)
if (choice === 'Tank') {
console.log('You chose tank')
}
})
})
我无法让我的选择变量等于目标 innerText,以便控制台.log('你选择了坦克')显示在控制台中。
我试过使用firstChild,它记录“坦克”
答:
0赞
Nicholas McCarty
11/7/2023
#1
您正在尝试在单击 li 元素时记录它们的 innerText。但是,由于 li 元素也包含 p 元素,因此您需要确保获得正确的文本。为此,请使用 li 元素的 textContent 属性,该属性检索 li 元素中的文本内容,然后使用 trim() 删除任何前导或尾随空格。
通过此修改,您应该能够捕获 li 元素中的文本,并使条件语句按预期工作。在此代码中,当您单击 li 元素时,它会记录该 li 元素的文本内容,并检查它是否等于“Tank”以记录相应的消息。
以下是您应该编辑的内容: const 选择 = cls.textContent.trim();
0赞
Joe.sexton
11/7/2023
#2
我找到了一种方法来让它工作,方法是检查 typeof 选项,然后使用 .includes 方法查看字符串中是否包含“Tank”。
if (choice.includes('Tank')) {
console.log('You chose tank')
}
评论
choice