获取引发事件的元素的id

时间:2013-05-14 19:22:01

标签: javascript jquery asp.net-mvc asp.net-mvc-3 javascript-events

我在asp.net mvc工作。我有以下JS

<script>
    function fun()
    {
        alert($(this).attr("id"));
    }
</script>

按照视图中的代码

@
{
  int i=1;
}
@for(i=1;i<10;i++)
{
  <a href="" id="@i" onclick="fun()">ABC</a>
}

我想获取调用fun()的锚的ID,但我总是得到undefined值。请帮忙。

4 个答案:

答案 0 :(得分:4)

传递

<a href="" id="@i" onclick="fun(this)">ABC</a>

 function fun(elem) {
    alert(elem.id);
  }

如果您要参考,将引用窗口对象。因此,如果您传递element to the function,那么该元素将在函数作为闭包的范围内可用。

答案 1 :(得分:3)

尝试:

<script>
  function fun(el) {
    alert($(el).attr("id"));
  }
</script>

@
{
  int i=1;
}
@for(i=1;i<10;i++)
{
  <a href="" id="@i" onclick="fun(this)">ABC</a>
}

答案 2 :(得分:2)

如果我绝对不得不使用onclick属性,我会调用带有this的函数作为上下文,当我在它时,传递事件对象。

<a href="" id="@i" onclick="fun.call(this,event)">ABC</a>

fun方法无需更改)

答案 3 :(得分:1)

是的,因为您必须在onclick事件中发送对象本身,如下所示:

@for(i=1;i<10;i++)
{
  <a href="" id="@i" onclick="fun(this)">ABC</a>
}

然后您可以访问其属性:

<script>
        function fun(obj)
        {
            alert(obj.id);//obj.name, obj.value also you could take.
        }
    </script>