2

나는 asp.net mvc에서 일하고있다. 나는 이벤트를 발생시킨 요소의 ID를 얻는다.

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

JS

을 다음과보기

내가 fun()를 호출 앵커의 ID를 얻으려면
@ 
{ 
    int i=1; 
} 
@for(i=1;i<10;i++) 
{ 
    <a href="" id="@i" onclick="fun()">ABC</a> 
} 

코드를 다음과 같은,하지만 난 undefined 값을 항상 얻을 수있다. 도와주세요.

답변

3

시도 :

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

과 : 경우에이

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

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

는 당신이 다스 려하는

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

패스, 창 객체를 참조합니다 . 따라서 element to the function을 전달하면 해당 요소는 클로저 역할을하는 함수의 범위에서 사용할 수 있습니다.

+0

+1 (변경은 fun 방법에 필요하지 않습니다)! –

+0

그 작업. 감사. –

+0

@FakharuzZaman .. 당신은 환영합니다 :) –

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

나는 절대적으로해야한다면 onclick 특성으로 할 경우 문맥으로 this 함수를 호출하고 나는 그것에있는 동안 이벤트 개체를 전달합니다. 당신이 jQuery를에서 바닐라에 전달하기 때문에

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

관련 문제