JavaScript:获取点击元素

时间:2010-09-21 09:23:21

标签: javascript

我需要在函数getClickedElement中获得clicked元素。我怎么能这样做?

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

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

感谢。

4 个答案:

答案 0 :(得分:7)

您无法在javascript:网址中获取点击的元素。该事件已经完成,因此没有event.target(或window.event.srcElement用于IE),javascript:链接不会在设置this时调用(因此您获得window })。

当然,如果你知道有问题的链接是id="test"你可以document.getElementById('test'),但我怀疑这是你想要做的事情。< / p>

  

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

修复或删除lib。 javascript:网址是完全恐怖的,应该永远不会

您可以在页面的其他位置添加<script>吗?如果是这样,您可以在元素上注入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分配IE attachEvent后备)是分配事件处理程序的最佳实践方式。

答案 1 :(得分:5)

以下stackoverflow问题提供了一种检测被点击元素的方法 here

$(document).click(function(event) {
    var text = $(event.target).text();
});

答案 2 :(得分:2)

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

<script>
function getClickedElement (id) {
    return document.getElementById(id);
}
</script>

或者,如果您无法预测ID,则可以在加载页面后使用Javascript附加事件。看看jQuery。使用类似$('a').click(function() {return this.id; });

的内容

答案 3 :(得分:0)

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

<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>

希望它会对你有所帮助,它帮助了我:)。

相关问题