JavaScript

04_객체(실습예제)

보갱:) 2020. 10. 25. 15:38

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>

<body>
    <style>
        #print {
            height: 100px;
        }

        #div2 {
            height: 300px;
            width: 500px;
            border: 1px solid black;

        }

    </style>

    <h1> 객체 실습 문제 </h1>

    문제1. <br>
    다음 입력 버튼을 클릭하면 이름,나이,주소를 prompt로 입력 받은 후 입력 받은 정보를 <br>
    member 라는 객체에 저장하여라.<br>
    이 후 출력 버튼을 클릭하면 member 객체 안에 있는 정보를 <br>
    출력 창에 출력되도록 만들어라.<br>
    (입력을 받지 않은 상태에서 출력 버튼 클릭시 입력을 먼저 해달라는 알림을 띄우도록 하여라)<br>
    ex) <br>
    이름 : OOO <br>
    나이 : OO세 <br>
    주소 : XXX XXX XXXX ... <br>

    <fieldset>
        <legend style="color:red;">출력창</legend>
        <div id="print">

        </div>
    </fieldset><br>

    <button onclick="insertMember();">입력</button>
    <button onclick="printMember();">출력</button>

    <br><br>
    <hr>
    <hr>
    <br><br>

    문제2. <br>
    다음 입력 버튼 클릭시 학생정보를 3명 저장받아(for문 사용) <br>
    테이블을 생성하여 출력하는 코드를 작성하여라. <br>
    단, 학생 정보는 객체로 처리하여 저장후 테이블에 입력하고<br>
    모든 학생 정보는 객체 배열에 저장하여 console.log(objectArr)로 출력시 <br>
    객체 배열 정보가 console.log에 나와야 함 <br>
    <center>
        <div id="div2">
            <table id="memberInfo" border="1px" width="300px" height="250px">
                <tr>
                    <th>이름</th>
                    <th>나이</th>
                    <th>주소</th>
                </tr>
                <tr>
                    <td name="name"></td>
                    <td name="age"></td>
                    <td name="addr"></td>
                </tr>
                <tr>
                    <td name="name"></td>
                    <td name="age"></td>
                    <td name="addr"></td>
                </tr>
                <tr>
                    <td name="name"></td>
                    <td name="age"></td>
                    <td name="addr"></td>
                </tr>
            </table>
        </div>
        <labal style="color:red;">학생정보 테이블</labal>
    </center>

    <button onclick="student();">입력 및 출력</button>

</body>
</html>

 

<script></script>내부 코드 작성하기


 

 

 

#js_object_ex1.html

[입력]버튼 onclick="insertMember();"

[출력]버튼 onclick="printMember();"

    <script>
        //member 객체 안에 값이 있는지 판단하기 위해 null 먼저 선언
        var member = null;

        function insertMember() {
            var inputname = prompt("이름 입력")
            var inputage = prompt("나이입력");
            var inputaddr = prompt("주소입력");
            //printMember 함수에서 사용할 수 있도록 전역변수로 선언 (var 없이 선언)
            member = {
                name: inputname,
                age: inputage,
                addr: inputaddr
            };
            console.log(member);
        }

        function printMember() {
            var print = document.getElementById("print");
            
            //입력을 받지 않은 상태에서 출력 버튼 클릭시
            if (member == null) {
                alert("입력 먼저 해주세요")
            } else {
                print.innerHTML = 
                    "이름 : " + member.name + "<br>" +
                    "나이 : " + member.age + "<br>" +
                    "주소 : " + member.addr + "<br>"
            }
        }
    </script>        

 

 


 

 

 

 

#js_object_ex1.html

[입력 및 출력]버튼  onclick="student();"

 

1) 입력받은 값을 객체배열에 저장  → 객체배열명[인덱스].변수명을 가져와서 테이블td에 값 넣기

    <script>
        //생성자 함수
        function Student(name, age, addr) {
            this.name = name;
            this.age = age;
            this.addr = addr;
        }

        function student() {
            //객체 배열 생성 방법(1)
            var objectArr = [];

            var nameTd = document.getElementsByName("name");
            var ageTd = document.getElementsByName("age");
            var addrTd = document.getElementsByName("addr");
            
            for (var i = 0; i < 3; i++) {
                var nameInput = prompt((i + 1) + "번째 학생 이름 입력")
                var ageInput = prompt((i + 1) + "번째 학생 나이 입력")
                var addrInput = prompt((i + 1) + "번째 학생 주소 입력")
                var s = new Student(nameInput, ageInput, addrInput)
                
                //객체 배열에 저장
                objectArr.push(s);

                //(객체배열명[인덱스].변수명)
                nameTd[i].innerHTML = objectArr[i].name;
                ageTd[i].innerHTML = objectArr[i].age;
                addrTd[i].innerHTML = objectArr[i].addr;
            }
            
            console.log(objectArr);
        }
    </script>

 

 

2) 입력받은 값을 바로 테이블td에 값으로 넣기  객체배열에 저장

    <script>
        function Student(name, age, addr) {
            this.name = name;
            this.age = age;
            this.addr = addr;
        }

        function student() {
            //객체 배열 생성 방법(2)
            var objectArr = new Array();
            
            var nameTd = document.getElementsByName("name");
            var ageTd = document.getElementsByName("age");
            var addrTd = document.getElementsByName("addr");

            for (var i = 0; i < 3; i++) {
                var name = prompt((i + 1) + "번째 학생 이름 입력");
                var age = prompt((i + 1) + "번째 학생 나이 입력");
                var addr = prompt((i + 1) + "번째 학생 주소 입력");

                nameTd[i].innerHTML = name;
                ageTd[i].innerHTML = age;
                addrTd[i].innerHTML = addr;
                
                var s = new Student(name, age, addr);

                //객체배열에 저장
                objectArr.push(s);
            }

            console.log(objectArr);
        }
    </script>

 

'JavaScript' 카테고리의 다른 글

05_BOM(2)  (0) 2020.10.25
05_BOM(1)  (0) 2020.10.25
04_객체  (0) 2020.10.25
03_함수(실습예제(2))  (0) 2020.10.22
03_함수(실습예제(1))  (0) 2020.10.22