채택완료

document.getElementByID 질문!

2017-04-12 (수) 15:35:19 4,273
Copy
function showhide() { var x = document.getElementByID('login_form');if (x.style.display === 'none') {	x.style.display = 'block';	} else {		x.style.display = 'none';	}} <a onClick="showhide();">클릭하세요~</a>

여기서 document.getElementByID('login_form');  이 소스는 태그값이 id인 login_form (element)로 반환인데

 

document.getElementByClass('login_form'); 이렇게 태그값이 class인것을 (element)로 반환할수 없나요? 

  

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
2017-04-12 (수) 16:00:17

document.getElementsByClassName("login_form")[0];

슈와이 님이 먼저 답변하셔서 제가 나중에 남긴 상황인지라 삭제했더니 슈와이 님도 삭제하셨네요. 

답변에 대한 댓글 3개

제가 질문을 좀 어렵게 했네요
<div class="login_form">login_form</div> // 이 div를 block&none할수 있는거죠?
그리고 뒤에 배열[0]은 무슨 의미인가요?
getElementsByClassName() 메소드 이름만 봐도 느끼시겠지만 s가 붙어 있습니다.
getElementById()에는 s가 안 붙었습니다.
s가 붙었으니 복수라는 거겠지요. 그래서 배열로 취급해서 [0] 이게 붙으면 첫 번째 애로 접근을 합니다.
말씀하신 shoow/hide 가능합니다.
document.getElementsByClassName("login_form")[0].style.display = "block"; // none
근데 굳이 저렇게 js로 처리해야 하나요? 엄청 길어서 차라리 jquery 사용하시는 게 더 나을 겁니다.
감사합니다^^ 제이쿼리로 사용하는 방법은 이미 알고있는데 자바스크립트 공부중 의문이 들어서 질문한 것입니다 ㅎㅎ 좋은하루 되세요~
2017-04-12 (수) 15:57:59

document.getElementByClass 라는 것은 없습니다. 

document.querySelector() 라는 것은 있습니다.

querySelector 는 브라우저 호환성이 IE8이상이나 네임스페이스 이슈가 있어 IE11이상부터 정상작동하는 것으로 알려져 있습니다. 

답변을 작성하려면 로그인이 필요합니다.