오늘은 몰랐으면 내일은 알면 된다
[Javascript&jQuery] 요소의 scrollHeight 구하기&배열 최대/최소값 본문
두가지의 textarea의 scrollHeight를 비교해서 긴쪽에 맞춰줘야 할 일이 생겼다.
하지만 향후 늘어날 수도 있기 때문에 여러개의 textarea를 비교해서 맞춰주는 방식을 알아보도록 하자.
요소의 scrollHeight를 구하는 방식 자체는 아래와 같다.
$(selector).prop('scrollHeight');
javascript를 활용해서 최대, 최소를 구하는 방식은 아래를 참고했다.
programmingsummaries.tistory.com/108
[JavaScript] 배열 요소 중 최대값 최소값 찾기
숫자로 이루어진 배열 내에서 가장 큰 숫자 혹은 가장 작은 숫자를 찾아야 할 경우 FOR문을 돌리는 단순한 방법 외에 두 가지 방법이 더 존재한다. 먼저 Math 객체를 사용하는 방법이 있다. Math 객
programmingsummaries.tistory.com
아래의 세가지 요소중 scrollHeight가 가장 큰값/작은값에 맞춰서 높이를 변경해보도록 하자.

<script type="text/javascript">
$(function(){
var txtArea = $('textarea');
var heightArr = [];
$.each(txtArea, function(index, item){
heightArr.push($(item).prop('scrollHeight'));
});
var max = heightArr.reduce(function (prev, curr) {
return prev > curr ? prev:curr;
});
var min = heightArr.reduce(function (prev, curr) {
return prev > curr ? curr:prev;
});
$(txtArea).height(max);
});
</script>
scrollHeight 값들이 들어있는 배열을 만들고, reduce함수를 사용해서 구해주었다.


reduce의 동작방식에 대해서는 아래의 글을 한번 읽어보도록 하자.
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Array.prototype.reduce() - JavaScript | MDN
Array.prototype.reduce() reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. The source for this interactive example is stored in a GitHub repository. If you'd
developer.mozilla.org
'Front > JavaScript' 카테고리의 다른 글
| [Spring&jQuery] 게시판 페이징 2. twbsPagination (0) | 2021.03.18 |
|---|---|
| [JavaScript&HTML] textArea 높이 자동 조절하기 (0) | 2021.03.05 |