扫码关注官方订阅号
我设置了很多个按钮。点击任意一个按钮,该按钮弹出一个弹窗。我希望根据按钮的不同,弹窗的内容不同。需要按钮的id名。
欢迎选择我的课程,让我们一起见证您的进步~~
尽量使用event.target.id,不要使用this.id。当使用事件委托的时候,this指向的是绑定监听事件的元素,而非被点击的元素。event.target.id则始终指向被点击的元素。
event.target.id
this.id
this
<p id="test">test</p><script>document.getElementById("test").onclick=function(){
console.log(this.id) }
</script>
一般都是绑定一个class,设置一个data-id
监测这个class的点击,然后获取当前点击的data-id
DomElement=document.getElementById('myid'); DomElement.getAttribute('id');
e.target.id
jquery 的办法
<body> <input id="t1" type="button" value='fff'> <input id="t2" type="button" value='fff'> <input id="t3" type="button" value='fff'> <input id="t4" type="button" value='fff'> <script type="text/javascript"> $(document).ready(function(){ $('input').each(function(){ alert($(this).attr('id')); }); }); </script> </body>
事件机制
<button class="btn" id="a">aaa</button> <button class="btn" id="b">bbb</button>
var btn = document.getElementsByTagName("button"); document.body.onclick = function(event){ //冒泡处理 var id = event.target.id; console.log(id); }
假设你要的按钮是button,那么给button设置点击事件的回调函数:
button
button.addEventListener('click', function() {});
在事件回调函数中,第一个参数往往是事件对象,这个对象包含了事件相关的很多信息,e.target就是发生点击的实际元素,因此想要到button的ID 直接取e.target.id就行了。
e.target
button.addEventListener('click', function(e) { console.log(e.target.id); });
需要补充一点的是,不建议直接给所有button元素逐一添加事件监听,一般是通过事件委托完成的,这方面可再了解下。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
尽量使用
event.target.id,不要使用this.id。当使用事件委托的时候,
this指向的是绑定监听事件的元素,而非被点击的元素。event.target.id则始终指向被点击的元素。<p id="test">test</p>
<script>
document.getElementById("test").onclick=function(){
</script>
一般都是绑定一个class,设置一个data-id
监测这个class的点击,然后获取当前点击的data-id
e.target.id
jquery 的办法
事件机制
假设你要的按钮是
button,那么给button设置点击事件的回调函数:在事件回调函数中,第一个参数往往是事件对象,这个对象包含了事件相关的很多信息,
e.target就是发生点击的实际元素,因此想要到button的ID 直接取e.target.id就行了。需要补充一点的是,不建议直接给所有
button元素逐一添加事件监听,一般是通过事件委托完成的,这方面可再了解下。