[英]How to get id of an element in jQuery?
我是jQuery的新手,我正在尝试获取已在页面中单击的元素的id
。
至于我看过了,我知道,我们可以得到一个id
,通过使用当前元素的$(this).attr("id");
但我没有得到id
而是说它undefined
。
HTML代码:
<html>
<body>
<form action="#">
<a href='#' id="1st">First</a></br>
<a href='#' id="2nd">Second</a></br>
<p id='3rd'>Test text</p>
</form>
<script type="text/javascript" src="jquery.js"> </script>
<script type="text/javascript" src="code.js"> </script>
</body>
</html>
code.js(jQuery代码):
$(document).click(function(){
alert($(this).attr("id"));
});
以下代码如何完美地返回id:
$(document).click(function(event){
alert(event.target.id);
});
有人可以解释为什么会发生这种情况以及我误解了什么? 谢谢。
正如Jason P在评论中指出的那样,你将.click()
事件绑定到$(document)
所以对$(this)
所有引用都将引用$(document)
。 由于您要求$(document)
的id ,您将收到未定义的错误,因为没有id 。
如果你想获得<a>
的id ,那么你需要将.click()
事件绑定到那个,比如:
$("a").click(function(){
alert( $(this).attr("id") );
});
$(this)
现在指的是<a>
。
请注意,这会将.click()
事件附加到每个 <a>
。
这是因为$(this)
指的是文档(事件绑定的内容)。 回调中的event.target参数指的是被单击的元素。
如果要将它与.attr()
结合使用,可以将event.target
包装到jquery对象并调用attr('id')
$(document).click(function(event){
alert($(event.target).attr("id"));
});
见jsfiddle: http : //jsfiddle.net/85HK4/1/
PS:你在这里看到的与事件冒泡有关。 请参阅: http : //www.quirksmode.org/js/events_order.html以及什么是事件冒泡和捕获? 。
简而言之: event.target
引用您单击的元素,这是指您将event
绑定到的元素。
<script>
$(document).ready(function() {
$(".well").mouseenter(function(e) {
alert($(this).attr("id"));
});
});
</script>
<div class="container">
<h2 class="text-info"> Check</h2>
<div class="well" id="first">
<a href='#' id="1st" class="text-warning">First</a></br>
<a href='#' id="2nd">Second</a></br>
</div>
</div>
这里$ this指的是任何事件,例如,mouseenter,click,mouseup等绑定到某个dom元素,您可以使用任何类,id或任何属性进行选择。
和$ this绑定事件和dom来撤销被叫请求。 这里是带有类的id dom元素:'well'
现在,如果你包括,第二个div与同一个类。 喜欢
<div class="well" id="second">
<a href='#' id="1st" class="text-warning">First</a></br>
<a href='#' id="2nd">Second</a></br>
</div>
每个班级都会用它的dom检查发生的事件。 因此,事件和选择器都应匹配以提供所需的结果,并且$ this绑定两者并相应地读取以给出结果。
在第二种情况下,当您将鼠标悬停在第二个div上时,它将发出警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.