[JAVASCRIPT] 앵커태그에서 스크립트 사용 시 this 관련 ..
<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 를 항상 가장 먼저 명시해주고,
받는 함수 쪽에서도 가장 먼저 받아야 한다.