点击li下.ui-corner-all类元素时如何获取a标签的ID
解决方法:获取li下a标签的ID
你的问题出在选择器的范围上——ul元素同样带有ui-corner-all类,所以当前的点击事件会绑定到ul和所有a标签上。当你点击a标签时,事件会冒泡到父级ul,导致弹出的是ul的ID(ui-id-1),而不是你想要的a标签ID。
这里有两种可靠的解决方式:
方式一:精准选择目标a标签
直接定位到li.ui-menu-item下的a标签,这样就不会误选中ul元素:
$(".ui-menu-item a.ui-corner-all").click(function() { alert(this.id); });
这种方式最直接,能确保事件只绑定到你需要的a标签上,点击后会弹出对应的ui-id-5、ui-id-6等ID。
方式二:在原事件中过滤目标元素
如果你想保留原选择器,可以通过事件对象的target属性判断点击的是否为a标签,再获取ID:
$(".ui-corner-all").click(function(event) { const clickedElement = event.target; // 验证点击的是a标签 if ($(clickedElement).is('a')) { alert(clickedElement.id); } });
这种方式会忽略ul上的点击事件,只响应a标签的点击。
验证你的HTML结构
你的HTML里每个li.ui-menu-item下的a标签都正确带有ui-corner-all类和独立ID,所以上面两种方法都能正常工作。
内容的提问来源于stack exchange,提问作者Muddassir Irahad
相关产品推荐
相关产品推荐

