이전 목록 다음
채택완료

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

2020-04-23 (목) 20:43:35 2,617

답변 3개 / 댓글 5개

채택된 답변
+20 포인트
2020-04-23 (목) 22:03:26
Copy
<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>

답변에 대한 댓글 1개

2020-04-23 (목) 22:43:32
BiHon님 답변 감사드립니다.
덕분에 바로 해결되었습니다.
정말 감사합니다.

편안한 저녁시간되세요^^
2020-04-23 (목) 21:36:11

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

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

Copy
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

답변에 대한 댓글 1개

2020-04-23 (목) 22:40:14
취미생활님 답변 감사드립니다.
해결되었습니다.
많은 도움이 되었습니다!
편안한 저녁시간되세요^^

음. 혹시

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;

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

답변에 대한 댓글 3개

2020-04-23 (목) 21:37:10
플래토님 답변 감사드립니다.
바로 적용해보았는데 이상하게 작동하지를 않네요 ㅜㅜ
한 번 다시 시도해보겠습니다.

매번 정말 감사드립니다!
@클래스는영원히
바로 적용하시면 안될것이구요

실제 보시려는 클래스명을 확인하신후에 처리하셔야 합니다.
2020-04-23 (목) 22:42:03
플래토님 매번 정말 큰 도움을 주셔서 감사드립니다.
해결되었습니다
편안한 저녁시간되세요^^

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