我在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
值。请帮忙。
答案 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>