为啥 $(this).id 不返回被点击元素的 ID? [复制]
Posted
技术标签:
【中文标题】为啥 $(this).id 不返回被点击元素的 ID? [复制]【英文标题】:Why doesn't $(this).id return the clicked element's ID? [duplicate]为什么 $(this).id 不返回被点击元素的 ID? [复制] 【发布时间】:2017-08-13 19:37:02 【问题描述】:为什么我的this.id
在单击时返回未定义而不是按钮的 ID?我知道有与此稍有相似的问题,但似乎没有一个建议对我有用。在任何人建议之前,我也尝试过$(this).attr("id");
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Meh</title>
</head>
<body>
<h2>Hello</h2>
<button id="warning" class="btn">Button</button>
<p>Button id: <span id="show"></span></p>
<script
src="https://code.jquery.com/jquery-3.1.1.js">
</script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
<script type="text/javascript">
$(".btn").on("click", () => $("#show").html($(this).id));
</script>
</body>
</html>
谢谢!
【问题讨论】:
因为this
不是一个有id的元素?
因为你使用的是箭头函数。阅读它。在这种情况下,您应该使用$(".btn").on("click", function () $("#show").html($(this).id) ); </script>
$(".btn").on("click", (ev) => $("#show").html(ev.target.id));
或从活动中获取
@JordanS 谢谢。你的建议可以解决问题。
【参考方案1】:
这是您可以执行此操作的另一种方法:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Meh</title>
</head>
<body>
<h2>Hello</h2>
<button id="warning" class="btn">Button</button>
<p>Button id: <span id="show"></span></p>
<script
src="https://code.jquery.com/jquery-3.1.1.js">
</script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
<script type="text/javascript">
$('.btn').click(function(event)
$("#show").html(event.target.id);
);
</script>
</body>
</html>
【讨论】:
谢谢你,穆斯。 @CollinsOrlando,随时!以上是关于为啥 $(this).id 不返回被点击元素的 ID? [复制]的主要内容,如果未能解决你的问题,请参考以下文章