为了账号安全,请及时绑定邮箱和手机立即绑定

如何在onclick处理函数中得到触发click的HTML element

如何在onclick处理函数中得到触发click的HTML element

繁花不似锦 2018-12-06 18:43:59
示例HTML代码如下: <!DOCTYPE HTML> <html> <head> <title>onclick test</title> <script type="text/javascript"> function whoClick(){ console.log(this); } </script> <body> <a href="javascript:void(0)" onclick="return whoClick();">Click Me</a> </body> </html> 运行结果: Window jstest.htm 期望的结果: <a onclick="return whoClick(this);" href="javascript:void(0)"> 我的问题是: 如何不通过给whoClick()传参的方式得到这个a标签元素?
查看完整描述

14 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

同感觉,可以用在click中用$(this)获得点击的发起源,在获得其他参数,方便多了

查看完整回答
反对 回复 2018-12-24
?
慕容708150

TA贡献1831条经验 获得超4个赞

<!DOCTYPE HTML>
<html>
<head>
<title>onclick test</title>
<script type="text/javascript">
function whoClick(from){
    console.log(from);
}
</script>
<body>
<a href="javascript:void(0)" onclick="return whoClick(this);">Click Me</a>
</body>
</html>

假如使用jQuery ,事件发送对象可以从this获得。

event.srcElement。

是这个吧?你应该知道这个的吧?

通过传递参数,可以写成this:

 

查看完整回答
反对 回复 2018-12-24
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

这是方法知道,需要给whoClick传参数,我是想不传参数实现。

查看完整回答
反对 回复 2018-12-24
?
弑天下

TA贡献1818条经验 获得超8个赞

@dudu: 在ie里,有event.srcElement,别的浏览器就不清楚了。

查看完整回答
反对 回复 2018-12-24
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

@笨笨蜗牛: Chrome中有event.target

查看完整回答
反对 回复 2018-12-24
?
阿晨1998

TA贡献2037条经验 获得超6个赞

@dudu: 哈,查看jQuery的代码,看用的是什么来识别FF。

查看完整回答
反对 回复 2018-12-24
?
墨色风雨

TA贡献1853条经验 获得超6个赞

@笨笨蜗牛: $.browser.mozilla

查看完整回答
反对 回复 2018-12-24
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

@dudu: 貌似FF下也是用vevent.target的吧?

查看完整回答
反对 回复 2018-12-24
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

@无之无: test

查看完整回答
反对 回复 2018-12-24
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

不懂,帮顶个,关注下。。

查看完整回答
反对 回复 2018-12-24
?
慕村9548890

TA贡献1884条经验 获得超4个赞

不传任何参数FireFox和IE下不行,可以试试这样:

<!DOCTYPE HTML>
<html>
<head>
<title>onclick test</title>
<script type="text/javascript">
window.onload=function(){
    var aEle=document.getElementById("test");
    aEle.onclick=whoClick;
};

function whoClick(event){
    var evnt = event||window.event;
    var current = evnt.target || evnt.srcElement;
    console.log(current.outerHTML);
}
</script>
<body>
<a id="test" href="javascript:void(0);">Click Me</a>
</body>
</html>
查看完整回答
反对 回复 2018-12-24
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

这种方式,直接this就能得到:

function whoClick(){    
    console.log(this);
}
查看完整回答
反对 回复 2018-12-24
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

赞同这种 

查看完整回答
反对 回复 2018-12-24
?
HUWWW

TA贡献1874条经验 获得超12个赞

感觉像专家在考我们啊

查看完整回答
反对 回复 2018-12-24
  • 14 回答
  • 0 关注
  • 1312 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信