getElementById와 getElementsByClassName 사용법에 대해 질문드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
getElementById와 getElementsByClassName 사용법에 대해 질문드립니다.

QA

getElementById와 getElementsByClassName 사용법에 대해 질문드립니다.

본문

안녕하세요

항상 sir 고수님들의 많은 도움을 받고있는 회원입니다.

정말 감사드립니다.

다름이아니라 한 부분이 막혀 질문드리게되었는데요

getElementById와 getElementsByClassName 사용법에 대해 질문드립니다.

 

<script>
    function replace_id(){
    var txt = document.getElementById('area_replace_<?= $data["c_idx"] ?>').value;
    txt = txt.replace(/\n$/g, '');

    document.getElementById('area_replace_<?= $data["c__idx"] ?>').value = txt;
    }
</script>
이 스크립트는 공백을 제거해주는 스크립트인데요

getElementById로 짜여진 스크립트입니다.

아무 이상없이 잘 작동합니다.

 

                                     
<script>
    function replace_class(){
    var txt = document.getElementsByClassName('area_replace_<?= $data["c_idx"] ?>').value;
    txt = txt.replace(/\n$/g, '');

    document.getElementsByClassName('area_replace_<?= $data["c_idx"] ?>').value = txt;
    }
</script>

이 스크립트는 위와 동일한 기능을 하는 소스입니다.

getElementsByClassName로 class를 지정해주려는데

작동을 하지 않습니다.

 

혹시 getElementsByClassName로 바꾸는도중 잘못 사용한 부분이 있을까요?

고수님들의 많은 조언 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 3


<script>
// 공백 제거 아님. 어쨌거나 area_replace_고유번호 클래스명이 1개만 존재할 때…
    function replace_class(){
    var txt = document.getElementsByClassName('area_replace_<?= $data["c_idx"] ?>')[0].value;
    txt = txt.replace(/\n$/g, '');
    document.getElementsByClassName('area_replace_<?= $data["c_idx"] ?>')[0].value = txt;
    }
</script>

음. 혹시

area_replace_0 과 같은 클래스가 없는거 아닐까요?

 

아무래도 

getElementsByName 이거나

클래스명이 area_replace  정도로 통일된 형태거나 할거 같은데

보통은

var txt = document.getElementsByClassName('area_replace_<?= $data["c_idx"] ?>').value;

가 아닌

 

var txts = document.getElementsByClassName('area_replace');

var txt =  txts[<?php echo $data["c_idx"]?>].value;

 

와 같이 접근해야 하지 않을까 싶어보입니다.

 

 

getElementById() 와 달리 getElementsByClassName()는 여러개가 있을 수 있기 때문에 리턴값이 배열입니다.

그래서 아래와 같이 사용합니다.

 



var matches = element.getElementsByClassName('colorbox');
for (var i=0; i<matches.length; i++) {
    matches.item(i).classList.add('hueframe');
}

 

출처: https://developer.mozilla.org/ko/docs/Web/API/Element/getElementsByClassName

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT