자바스크립트에 함수인자는 다른변수와 다른가요?
글쓴이: sadrove / 작성시간: 토, 2005/10/08 - 5:03오후
function view_del(){ test.style.visibility = "visible"; }
test라는 div태그가 hidden으로 선언되어 있습니다.
위 함수를 호출하면 당연히 test 라는 div 태그가 화면에 나타납니다.
그런데 이상하게 함수 호출시 num에 "test"라는 값으로 넘겨 주고.. 코드를 아래와 같이 고치면 에러가 납니다.
function view_del(num){ alert(num); num.style.visibility = "visible"; }
당연히 alert(num);으로 나타나는 메시지는 test 라고 정확히 찍힙니다.
똑같은 건데 왜 에러가 날까요?..
ㅠ.ㅠ....
Forums:
자바스크립 이전에 대부분의 언어가 저런방식의 code 가 될리가 없습니다
자바스크립 이전에 대부분의 언어가 저런방식의 code 가 될리가 없습니다.
위의 함수가 되는것도 사실 말이 안되야 합니다.
test 가 전역변수식으로 선언이 되어있지 않은이상..
<div id="test"> 라고 하셨다고 가정하면
test 라는 div object 가 있다고 생각하시고 거기에 접근하는게
단순히 변수에 "test" 란 값을 넣어서 접근한다고 생각하시면
전혀 될리가 없습니다.
var num = "test";
라고 선언하고
num 의 member 에 접근하면 당연히 일반적인 string object ( java script 에선 그냥 변수 object 겠지요.. ) 가 될 수 밖에 없습니다.
특정 html eliment 의 object 로 접근하려면 ie 나 요즘 파폭 , 모질라에서 지원 하는 " getElementById " 라는 method 를 사용하십시오. ( <div id="test" > 로 선언되었을경우 )
즉 2번째함수에서는
var test_obj = document.getElementbyId(num);
을 통해 test_obj 를 얻어낸후 사용하셔야 합니다.
<div name="test"> 라고 코딩을 하셨다면
일반적으로 <html> 구조에 따라 접근을 해주셔야 할껍니다.
document["test"] 로 접근이 되던가
그냥 test 로 접근이 되는 경우도 있습니다만,
안될수도 있기때문에 요즘은 id 로 unique 하게 설정해주는게
( 사실 id 자체가 표준은 아니지만.... ) 좋겠습니다.
여담으로 1번 함수에서 alert (test) 해보시면 object 라고 찍힐겁니다.
제대로 객체에 접근이 되었다면
alert(test.id) 혹은 alert(test.name) 으로 찍어봐야 정확하겠지요.
Neogeo - Future is Now.
아...제가 너무 바보같았군요...ㅠ.ㅠ..감사합니다..
아...제가 너무 바보같았군요...ㅠ.ㅠ..
감사합니다..
죄송하지만... 하다가 잘 안되서 다시 질문드립니다..<div
죄송하지만... 하다가 잘 안되서 다시 질문드립니다..
<div id="test"> 를 실제로는 어떤식이냐면..
루프문 안에 div 태그가 들어가 있습니다..
루프가 계속 반복되니까 div의 id가 계속 동일한 값이 들어가길래..
이름을 구분하기 위해서
<div id="div_<?=$num?>">
이런식으로 작성했었습니다...
올바른 방법 같지 않은데..
이럴 경우엔 어떤식으로 id 값을 줄 수 있을까요..?..
부탁드립니다...
var test_obj = document.getElementbyId("
var test_obj = document.getElementbyId("div_" + num);
이런식으로 하면 되지 않을까요?
댓글 달기