我想点击每一项捕捉里面的data-id属性的值,但是我在网上做了一些研究!还是遇到了很多困难,还是想不出如何捕捉每一项里面的data-id的值,希望有人能给我指导~感觉自己在学习程序的过程中,感觉很挫败
document.addEventListener("click", handle);
const demo = e.target.closest(".demo");
let item = document.querySelectorAll(".item");
for (let i = 0; i < item.length; i++) {
item[i].onclick = function(e) {
console.log(e.target.dataset.id)
};
}
body {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.demo {
display: inline-block;
border: 1px solid #222;
}
.item {
border: 1px solid #222;
padding: 30px;
}
.item:hover {
background-color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="demo">
<li class="item" data-id="11111">
<span>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Esse, mollitia! Aspernatur animi similique temporibus quidem ullam officiis distinctio deleniti alias.</span>
</li>
<li class="item" data-id="22222">
<span>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Esse, mollitia! Aspernatur animi similique temporibus quidem ullam officiis distinctio deleniti alias.</span>
</li>
<li class="item" data-id="333">
<span>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Esse, mollitia! Aspernatur animi similique temporibus quidem ullam officiis distinctio deleniti alias.</span>
</li>
</ul>
2条答案
按热度按时间uwopmtnx1#
不要混合原生JavaScript和jQuery,最好使用其中一个。下面是jQuery的解决方案:
bmp9r5qi2#
您有一个
span
元素,它 Package 了li
中的所有内容,span
是实际的事件目标。请改用
this
关键字,该关键字引用事件侦听器附加到的元素。