JavaScript:getclicked元素

JavaScript:getclicked元素,javascript,Javascript,我需要在函数getClickedElement中获取clicked元素。我该怎么做 <html> <head> <script> function getClickedElement () { } </script> </head> <body> <a href="javascript:alert(getClickedElement())" id="test">click me!!!&

我需要在函数getClickedElement中获取clicked元素。我该怎么做

<html>
<head>
  <script>
    function getClickedElement () {
    }
  </script>
</head>
<body>
  <a href="javascript:alert(getClickedElement())" id="test">click me!!!</a>
</body>
</html>

函数getClickedElement(){
}
我只能设置href属性。 我无法设置onclick事件,因为该元素是由第三方库生成的

谢谢。


<a href="javascript:alert(getClickedElement('test'))" id="test">click me!!!</a>

<script>
function getClickedElement (id) {
    return document.getElementById(id);
}
</script>
函数getClickedElement(id){ 返回文档.getElementById(id); }

或者,如果无法预测ID,可以在页面加载后使用Javascript附加事件。看看jQuery。使用类似于
$('a')的内容。单击(函数(){returnthis.id;})

您无法在
javascript:
URL中获取单击的元素。事件已经完成,因此没有
event.target
(或IE的
window.event.srcElement
),并且
javascript:
链接不会使用
集调用(因此您会得到
window

当然,如果您知道有问题的链接是
id=“test”
,那么您可以执行
document.getElementById('test')
,但我怀疑这并不是您想做的重点

我只能设置href属性。我无法设置onclick事件,因为该元素是由第三方库生成的

修复或删除lib<代码>javascript:
URL是绝对可怕的,永远不应该使用

能否在页面的其他位置添加
?如果是这样,您可以将
click
事件处理程序注入元素,而不需要任何额外的标记。例如:

for (var i= document.links.length; i-->0;)
    if (document.links[i] is one of the links you want to target)
        document.links[i].onclick= someHandlerFunction;

function someHandlerFunction() {
    alert(this);
    return false;
}

事实上,从JS(使用
on…
或通过
addEventListener
使用
attachEvent
IE回退)分配是添加事件处理程序的最佳实践方式。

您可以将其作为参数传递,然后就可以知道您要查找的元素是什么。 例如:

<html>
<head>
  <script>
    function getClickedElement ($this) {

    }
  </script>
</head>enter code here
<body>
  <a href="javascript:alert(getClickedElement(this))" id="test">click me!!!</a>
</body>
</html>

函数getClickedElement($this){
}
在这里输入代码

希望它能帮助你,它帮助了我:)

下面的Statkoverflow问题提供了一种检测单击元素的方法


我不知道元素ID。它是由第三方库生成的。我只能设置href值。加载页面后,您可以使用Javascript附加事件。看看jQuery。使用类似于
$('a')的内容。单击(函数(){returnthis.id;})$(document).click(function(event) {
    var text = $(event.target).text();
});