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