: 웹 화면을 구성하는 html코드에 쉽게 접근할 수 있도록 만든 모델
자바스크립트로 돔을 다루는 법을 알아보도록 하겠다.
<body class="container">
<h1>자기소개</h1>
<textarea class="form-control" rows="3" id="jasoseol">저는 인성 문제가 없습니다.</textarea>
<script>
var content = document.getElementById('jasoseol').value;
console.log(content);
</script>
</body>
.length : 문자열의 길이
var content = document.getElementById('jasoseol').value;
console.log(content.length);
'(' + 15 + '/200)' : 자동으로 형 변환
var content = document.getElementById('jasoseol').value;
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
함수 => 명령어의 모음, 함수 쓰면 긴 명령어 여러번 쓸 필요없음
function 함수이름() {
명령어1;
명령어2;
...
}
function counter() {
var content = document.getElementById('jasoseol').value;
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
};
counter();
함수로 묶어주기
(글자를 쓸 때마다 자동으로 글자수 세려면 어떻게 해야할까?)
키보드를 누를 때 마다 글자 수를 세어라
이벤트란?
마우스 클릭, 키보드 누름, 값 변화, 페이지 로딩 등 어떤 사건을 의미
이벤트 핸들링?
이벤트가 발생하면, ___해라.
ex) 이벤트 : 키보드를 누를 때마다
이벤트핸들링 : 글자 수를 세주어라
<textarea 이벤트=이벤트핸들링></textarea>
<textarea onkeydown='counter()';
-> 글자를 입력할 때마다 글자수 업데이트!
~하면(조건문 if) 200자 넘으면
200글자 이후는 잘라버리기 더이상 안 써지도록 하려면
content.substring(0.5); -> 문자열에 인덱스 중에서 0이상 5미만 인덱스만 잘라서 그 문자만 남기게 됨
.substring(0, 200);
ex) 200 글자 넘으면 자동으로 잘리는 것 구현
if(content.length > 200) {
content = content.substring(0,200);
document.getElementByIf('jasoseol').value = content;
}
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>자소서 글자수 계산기</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<style>
h1 {
margin-top: 30px;
}
#count {
float: right;
}
</style>
</head>
<body class='container'>
<h1>자기소개</h1>
<textarea class="form-control" rows="3" id="jasoseol" onkeydown="counter();">저는 인성 문제가 없습니다.</textarea>
<span id="count">(0/200)</span>
<script>
function counter() {
var content = document.getElementById('jasoseol').value;
if (content.length > 200) {
content = content.substring(0,200);
document.getElementById('jasoseol').value = content;
}
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
}
counter();
</script>
</body>
</html>