프로그래밍

[JAVASCRIPT] 앵커태그에서 스크립트 사용 시 this 관련 ..

ReturnToHome 2016. 12. 24. 21:17

<td>

<a href="javascript:fun(this);" attr1="a" attr2="b">aa</a>

</td>

 

 

function fun(obj) {

console.log($(obj).attr("attr1"));

}

 

 

위와 같을 때 a 태그의 object 가 정상적으로 호출이 안될때가 있다 그럴 시에는

 

<a href="#" onclick="fun(this); return false;" attr="1" attr2="b">

 

와 같이 onclick 을 사용하면 정상적으로 동작 될 수 있다.

 

 

 

또한 다른 파라미터를 보내고 싶을 시 아래와 같이 사용하여야 한다.

 

 

* A : 옳은 표현

function fun(obj, value1, value2) {

console.log($(obj).attr("attr1"));

}

 

<a href="#" onclick="fun(this, 'param1', 'param2'); return false;" attr="1" attr2="b">

 

 

* B : 옳지 않은 표현

<a href="#" onclick="fun('param1', 'param2', this); return false;" attr="1" attr2="b">

function fun(value1, value2, obj) {

console.log($(obj).attr("attr1"));

}

 

 

 

--> B 와 같이 할 시 object 을 찾을 수 없다. 그렇기에 A 처럼 this 를 항상 가장 먼저 명시해주고,

받는 함수 쪽에서도 가장 먼저 받아야 한다.