Javascript'this'没有点击返回对象

时间:2011-03-04 18:13:38

标签: javascript

我在后面的代码中生成了一个锚标记,用

调用一个函数
href="javascript:blah('string',this);"

我需要与对象进行交互,但它似乎没有正确返回。当我提醒它时它返回“对象窗口”并调用this.id返回undefined(锚有一个ID)

任何想法?

由于

4 个答案:

答案 0 :(得分:3)

不使用点击事件的href,而是使用内联onClick处理程序。这将为您提供正确的“此”对象。

<a href="javascript:void(0);" onclick="blah('string',this);">

答案 1 :(得分:1)

您使用的浏览器是什么?示例href是您要生成的内容或源代码中显示的内容吗?

假设链接生成正确,这完全是一个JavaScript问题。

不同的浏览器具有稍微不同的事件处理程序实现。考虑使用JQuery来掩盖这些不一致性并给自己一个更容易的工作。

答案 2 :(得分:0)

href="javascript:blah('string',this);"

内部函数blah this引用window object

这样做

<a href="javascript:" id="myLink">


function handle()
{
// this refers to your link
}
document.getElementById('myLink').onclick=handle;

答案 3 :(得分:0)

即使禁用了javascript,您也可以使一切正常运行。

<a href="#objectToInteractWithOrAnUriWithoutTheHash" onclick="return blah(this);">test</a>


<script type="text/javascript">
   function blah(link) {
      var elementIdOrUri = link.href;

      //do some crazy stuff.

      //false will prevent the browser from visiting the link
      return false;
     }
</script>

由于在这种情况下使用href,如果禁用了javascript,则会访问该元素(如果它有一个锚点)或uri。否则将调用您的函数。