繁体   English   中英

Javascript / jQuery:为什么使用<a>标记Vs</a>对event.target使用不同的结果<a>。</a> <a>console.log中的其他元素,请注意$(this)的alert()</a>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM