(Javascript) getElementsByName() 이 작동하지 않을 때

IT/Programming/Solution/Tip 2014. 11. 4. 12:32

javascript 자체를 필요할 때만 잠깐 쓰다보니 했던 실수를 계속 하게 된다.

나는 이상하게도 유독히 getElementsByName() 함수를 쓸 때 실수를 하곤 하는데, 그 케이스를 정리해본다.

 

1. getElementsByName 을 GetElementsByName 이라고 작성하는 경우

==> --; 어.. 음.. 다른 언어에서 하던 네이밍 습관때문에 이런 것 같다. 보통은 함수의 첫자는 대문자이니깐.

javascript 에서는 getElementsByName 이다.

 

2. getElementsByName 을 getElementByName 이라고 작성하는 경우

==> name은 중복될 수 있는 요소이기 때문에, ID를 가져오는 함수인 getElementById 와 다르게 Element 에 s가 붙어 복수형이 된다. 주의하자.

http://anow.tistory.com/148 참고!

 

3. 배열 첨자를 사용하지 않았을 때

==> 이를테면 "TEST" 라는 이름을 가지고 있는 input 박스가 여러개인데,

document.getElementsByName("TEST") 으로 object를 가져오고 해당 object를 그냥 열람하려고 할 때.

이런 경우는 반드시 배열 첨자를 사용하여 가져와야 한다. 아래의 코드를 참고하자.

 

** 해당 이름을 가지고 있는 박스가 하나밖에 없더라도 배열 첨자를 사용해야한다. 하나밖에 없으므로 0 번째 요소를 가져오면 된다.

 

1)

document.getElementsByName("TEST")[0].value = "...";

 

2)

var obj;

obj = document.getElementsByName("TEST");

obj[0].value = "...";

 

 

위의 1, 2 코드 모두 같은 코드다. getElementsByNames 이 object를 반환하고 이를 배열 첨자를 통해 참조하는 코드이다.

이해에 어려운 사람들을 위해서 위의 1, 2 코드를 첨부하니 참고하길 바란다.

 

 

test.zip

 

설정

트랙백

댓글