ABOUT ME

초보 개발자의 일기장입니다. 배운 것들을 정리하며 복습하는 시간을 갖기 위해 개설했습니다.

Today
Yesterday
Total
  • jquery 연습(3)
    스파르타코딩/스파르타코딩 2주차 2022. 5. 26. 16:33

    이번 시간은 quiz 문제를 풀어보았다.

     

     

    # 1번 문제 - 버튼을 눌렀을 때 입력한 글자로 얼럿 띄우기 (버튼을 눌렀을 때 칸에 아무것도 없으면 "입력하세요!" 얼럿 띄우기)

     

    <div class="question-box">
        <h2>1. 빈칸 체크 함수 만들기</h2>
        <h5>1-1. 버튼을 눌렀을 때 입력한 글자로 얼럿 띄우기</h5>
        <h5>[완성본]1-2. 버튼을 눌렀을 때 칸에 아무것도 없으면 "입력하세요!" 얼럿 띄우기</h5>
        <input id="input-q1" type="text" /> <button onclick="q1()">클릭</button>
    </div>

    우선 문제 내용을 확인해보자

    input type = text  의 id 값 'input-q1" 과 onclick 함수 'q1' 이 주어졌다.

    먼저 q1 함수를 만들어주고 그 안에 내용을 담아주어야겠다.

     

    <script>
        function q1() {
            let txt = $('#input-q1').val();
            console.log(txt);
        }

    txt 라는 함수안에 input-q1의 값을 담아준 후 consol 찍어 보아 잘 실행되는지 확인해본다.

     

    정상적으로 실행이된다.

    function q1() {
        let txt = $('#input-q1').val();
        if (txt == ''){
            alert('입력하세요!!');
        }else{
            alert(txt);
        }
    }

    txt 값이 빈 칸이면  if (txt == '')  -->      alert('입력하세요');   를 출력

    아닐경우 else --> alert(txt);   txt 값을 출력

     

    빈 칸으로 클릭 시 '입력하세요!!' 출력 확인

     

    txt 내용이 있을때도 내용 출력 확인

     

     

     

     

    # 2번 문제 - 이메일 판별 함수 만들기 (이메일이 아니면(@가 없으면) '이메일이 아닙니다'라는 얼럿 띄우기)           

                                           - 이메일은 도메인만 얼럿 띄우기

     

    <div class="question-box">
        <h2>2. 이메일 판별 함수 만들기</h2>
        <h5>2-1. 버튼을 눌렀을 때 입력받은 이메일로 얼럿 띄우기</h5>
        <h5>2-2. 이메일이 아니면(@가 없으면) '이메일이 아닙니다'라는 얼럿 띄우기</h5>
        <h5>[완성본]2-3. 이메일 도메인만 얼럿 띄우기</h5>
        <input id="input-q2" type="text" /> <button onclick="q2()">클릭</button>
    </div>

     

    마찬가지로 input-q2 와 q2 함수 확인.

    문자열안에 특정 문자가 있는지 확인하기 위해서는 includes 함수를 사용해주면 된다.

    txt2 에 intput-q2 값을 담아준다.  txt2 =$('input-q2').val();

    txt2.includes('@')  해주면 txt2에 @가 있으면 true, 없으면 false

     

    마지막으로 이메일은 도메인만 얼럿으로 띄워야하니 split 함수를 한번더 사용해야한다

    split 함수는 문장을 특정 문자를 기준으로 배열로 나눠준다.

     

    예를들어

    '010-1234-5678'  이라는 문장이 있고 split('-')을 사용하면 3개의 배열로 나눠진다.

     

    let TEL = '010-1234-5678'

    let split = TEL.split('-');

    해주면

    split = ['010', '1234', '5678'] 로 3개의 배열로 나뉨

    split[0] = 010

    split[1] = 1234

    split[2] = 5678 

     

    function q2() {
        let txt2 = $('#input-q2').val();
        if (txt2.includes('@')){
            let print = txt2.split('@')[1].split('.')[0];
            alert(print);
        }else {
            alert('이메일이 아닙니다.');
        }
    
    }

    만약,   txt2 = usop@gmail.com 이 입력된다면

    txt2에는 @가 있으므로

    print에는 'usop@gmail.com' 을 split('@') 하여  ['usop', 'gmail.com'] 으로 먼저 나눠진 후 [1] 배열의 값인

    'gmail.com' 이 split('.') 되어 ['gmail' , 'com'] 으로 나눠진 후 [0] 배열인 gmail이 담긴다

    alert(print) 하면 도메인 gmail 이 출력될 것 이다.

     

    확인해보자

     

    usop@gmail.com을 입력하면 도메인이 정상적으로 출력

     

    @를 입력하지 않으면 '이메일이 아닙니다'가 출력

     

     

     

      #3번 문제 - 이름을 입력하면 추가되는 버튼과 다 지우기 버튼을 만들어보자. 

    <div class="question-box">
        <h2>3. HTML 붙이기/지우기 연습</h2>
        <h5>3-1. 이름을 입력하면 아래 나오게 하기</h5>
        <h5>[완성본]3-2. 다지우기 버튼을 만들기</h5>
        <input id="input-q3" type="text" placeholder="여기에 이름을 입력" />
        <button onclick="q3()">이름 붙이기</button>
        <button onclick="q3_remove()">다지우기</button>
        <ul id="names-q3">
            <li>세종대왕</li>
            <li>임꺽정</li>
        </ul>
    </div>

    input-q3 와 q3 와 q3-remove  마지막으로 names-q3와 <ul><li> 태그를 확인했다.

    <li>'이름값'</li> 형식으로 추가해주면 이름이 계속 추가될거같다.

     

     

    정리된 스크립트 코드를 먼저 보고 설명하자면

    function q3() {
        let txt3 = $('#input-q3').val();
        let temp_html = `<li>${txt3}</li>`;
        if (txt3 != "") {
            $('#names-q3').append(temp_html);
        }
    }
    
    function q3_remove() {
        $('#names-q3').empty();
    }

     

    우선 txt3 에 intput-q3 의 밸류값을 담아준다.

    그리고 temp_html  에 `(백틱)을 사용하여 `<li>${txt3}</li>`; 담아준 후

    txt3 의 값이 빈 값이 아닐경우에 추가가되야 하므로

    if (txt3 != "") 를 해주었다.

    names-q3 뒤에 append 를 사용하여 이름을 추가하였다.

    q3_remove 는 empty() 를 사용하여 리셋버튼을 추가해주었다.

     

    usop 이름 붙이기 정상 작동

     

    지우기 버튼을 누르자

     

    다 지우기 버튼 정상 작동

     

     

    정리)

    split, append, includes 등 다양한 메소드와 함수를 사용하여 예제를 풀어보니 재밌기도하고 몇마디 안 써도 뚝딱 뚝딱 완성되는게 너무 신기하다.

    하핳... 열심히 연습해서 조만간 간단한 홈페이지를 만들어봐야겠다!!

    '스파르타코딩 > 스파르타코딩 2주차' 카테고리의 다른 글

    Ajax 연습하기(1) - 서울시 미세먼지 API  (0) 2022.05.27
    JQuery 연습(3) 통합 코드  (0) 2022.05.26
    JQuery 연습하기 (2)  (0) 2022.05.26
    JQuery 연습  (0) 2022.05.24
    JQuery 입문하기  (0) 2022.05.24
Designed by Tistory.