Javascript获取调用函数的dom元素

Javascript获取调用函数的dom元素,javascript,Javascript,HTML部分: <a href="#" onclick="callme();return false;">foo</a> 在JS部分中,我能以某种方式获得调用此函数的a标记吗 我知道我可以把它作为一个参数传递,但是这个函数在一个页面上使用了很多次,我想避免把参数放在任何地方 谢谢 由于使用的是onclick属性(糟糕!),因此必须将其传递到函数中 onclick="callme(this); return false;" <a href="#" onclick=

HTML部分:

<a href="#" onclick="callme();return false;">foo</a>
在JS部分中,我能以某种方式获得调用此函数的a标记吗

我知道我可以把它作为一个参数传递,但是这个函数在一个页面上使用了很多次,我想避免把参数放在任何地方


谢谢

由于使用的是onclick属性(糟糕!),因此必须将其传递到函数中

onclick="callme(this); return false;"
<a href="#" onclick="callme(this);return false;">foo</a>

function callme(me) {
  $(me).toggle();
}
而js:

function callme(el) {
  var $me = $(el);
  $me.doSomething();
}
另一个选项是使用.call()设置函数的上下文

还有js

function callme(event) {
    event.preventDefault();
    $(this).doSomething();
}

将此参数发送到函数

onclick="callme(this); return false;"
<a href="#" onclick="callme(this);return false;">foo</a>

function callme(me) {
  $(me).toggle();
}

函数callme(me){
$(me.toggle();
}

我有一个简单的JS函数

 function getEventTarget(event) {
     var targetElement = null;
     try {
         if (typeof event.target != "undefined") {
             targetElement = event.target;
         }
         else {
             targetElement = event.srcElement;
         }
         // just make sure this works as inteneded
         if (targetElement != null && targetElement.nodeType && targetElement.parentNode) {
             while (targetElement.nodeType == 3 && targetElement.parentNode != null) {
                 targetElement = targetElement.parentNode;
             }
         }
     } catch (ex) { alert("getEventTarget failed: " + ex); }
     return targetElement;
 };
在html中

 <a href="#" onclick="callme.call(this,event);return false;">foo</a>
getEventTarget()将返回整个dom对象,您可以根据自己的喜好对其进行操作,或者其他用户已经说过可以使用它

 function callme(event) {
      $(this).toggle();
 }

最好不要在html标记中使用onlcick

$(document).ready(function() {
  $("a").click(callme);
})

function callme() {
  var me = this;
  $(me).toggle();
}

+2用于使用
.call()
-1表示onclick属性不好我想它们真的不错,只是我不会向任何人推荐一种编程风格。你假设OP会使用jQuery,他只将其标记为javascript。@Maess它最初是用jQuery标记的,有人编辑过它。此外,他在问题中使用了jQuery(或者,如果您想确切地说,他使用的是库或自定义函数,它们使用与jQuery相同的签名)<代码>$(me.toggle()
$(document).ready(function() {
  $("a").click(callme);
})

function callme() {
  var me = this;
  $(me).toggle();
}