[javascript] getElementById()와 getElementByName()

2021. 7. 16. 18:25Web


후 할때마다 이녀석들 때문에 속에서 천불이 난다.

공부하지 않을걸 어떻게 자바랑 비슷하게 생겼다고 어찌어찌 쓰는거니까 내 업이긴 한데..!

 

그래서 오늘은 id와 name이 무엇인가부터 getElementById()와 getElementByName()의 차이를 정리하려한다.


name, id                                                                                           

공통점

name과 id 가 매번 헷갈리는 이유다. 둘 모두 html의 element 식별자다. 

대부분 언어들에서는 식별자 역할을 하는 것들이 하나니까 나처럼 야매로 하는 사람을 늘 이부분에서 대충 넘어가게된다.(지옥의 시작)

 

차이점

id : document 내에서 오로지 하나

name: 중복가능

 

 

 

getElementById()와 getElementByName()                                                  

name과 id의 차이를 알고보니 검색하기도 전에 두 함수의 차이를 대강 느꼈다.

 

getElementById()는 호출하는 대상이 유일하고, getElementByName()는 호출 대상이 여러개다.

name은 중복 가능한 개체니까.

실제로  getElementByName()는 배열을 반환한다.

 

 


여기까지 알면 모든게 해결된다고 생각하겠지만 문제는 여기서 터진다.

대체 왜 getElementById()는 호출이 안되냐 이거다. 이놈은 아에 터진다.

시간은 없고 마음은 급하고 그렇다면getElementByName()이라도 써보자하고 시도해도 잘 안된다.


일단은 왜 getElementByName()이 undefined를 반환했을까.

바로바로 배열을 반환하니까!

 document.getElementsByName("concernAdd")[0].value

 

각 값에을 얻으려면 이렇게 인덱스를 이용해 접근해야했다.

 

 

 

(작성중)