[英]Javascript/jQuery: Why different result for event.target using <a> tag Vs. other Elements in console.log, alert() with $(this) in mind
使用event.log处理DOM时似乎有些事情值得理解。
比较警报中的结果和firebug中的console.log。
我有以下代码HTML:
<div>Click Me < Div ></div>
<a href="#">Click Me < a ></a>
和JS:
$(function(){
$('div').click(function(e){
console.log(e.target);
console.log($(this));
alert(e.target)
alert($(this))
})
$('a').click(function(e){
e.preventDefault();
console.log(e.target);
console.log($(this));
alert(e.target)
alert($(this))
})
})
单击Div或时:
两者的console.log
都按预期工作
但是alert
显示为不同的输出:
对于DIV:
1个对象HTMLDivElement
2 object Object//using jQuery's $(this)
但是,单击<a>
标记时,将产生:
1网址或
href
属性的值2 object Object
//using jQuery's $(this)
为什么会这样呢? 为什么<a>
的警报不将此标签打印为HTMLElement?
请在此处进行自我测试: http : //jsfiddle.net/hWR53/1/
所有对象(包括元素)都具有toString
函数 ,并且在对象上调用此toString
函数以构建警报中显示的内容。
对于大多数目的,该函数将返回"[object Object]"
,但实例a
元件具有它重写返回的值href
元素的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.