<h3>Shirts</h3>
<ul id='list'>
<li>Biker Jacket</li>
<li>Mens Shirt</li>
</ul>
我需要得到控制台.log出第二个 li 元素。我尝试了下面的代码,但我只能访问第一个 li 元素
document.querySelector("li").onclick = () => {
console.log("Biker Jacket");
};
> 只需改用querySelectorAll()
方法,并像这样定位第二个li
元素:
document.querySelectorAll("#list li")[1].onclick = () => {
console.log("Biker Jacket");
};
<h3>Shirts</h3>
<ul id='list'>
<li>Biker Jacket</li>
<li>Mens Shirt</li>
</ul>
对第二个使用querySelectorAll[1]
:
document.querySelector("li").onclick = () => {
console.log("Biker Jacket");
};
document.querySelectorAll("li")[1].onclick = () => {
console.log("Mens Shirt");
};
<h3>Shirts</h3>
<ul id='list'>
<li>Biker Jacket</li>
<li>Mens Shirt</li>
</ul>
由于这似乎是您要console.log
单击的列表项的文本内容,因此您可以这样做:
function showText(elem) {
console.log(elem.innerText);
}
document.querySelectorAll("li").forEach(li => li.addEventListener("click", () => showText(li)));
<h3>Shirts</h3>
<ul id='list'>
<li>Biker Jacket</li>
<li>Mens Shirt</li>
</ul>
您可以使用 li 的此单击传递元素,并使用 textContent 打印其文本
function a(e)
{
console.log(e.textContent)
}
<h3>Shirts</h3>
<ul id='list'>
<li onclick="a(this)">Biker Jacket</li>
<li onclick="a(this)">Mens Shirt</li>
</ul>
您可以使用:nth-child(x)
伪选择器将元素置于位置x
,如下所示:
document.querySelector("ul#list > li:nth-child(2)").onclick = () => {
console.log("Biker Jacket");
};
<h3>Shirts</h3>
<ul id='list'>
<li>Biker Jacket</li>
<li>Mens Shirt</li>
</ul>
有几种方法可以选择它:
const item = document.querySelector("ul>li:nth-child(2)")
或
const item = document.querySelectorAll('#list li')[1]
或者,如果它只是您需要的任何列表中的最后一件事:
const items = document.querySelectorAll('#list li');
const item = items[items.length-1];
选择项目后,向其添加单击处理程序:
item.addEventListener('click', ()=>{
console.log(this.innerText);
});