⚡ Node로 생성
Dom객체와 Node객체 차이
angular,react,vue 등에서 node가 쓰여서 node를 많이쓰는 추세!
createElement : html태그를 생성하는 함수
<body> <div id="box"></div> </body> <script> //--DOM or Node 건들시 스크립트는 html 이후에 작성 var a = document.getElementById("box"); //DOM형태 var html = "<ol><li>공지사항</li></ol>" //dom객체 html += "<ol><li>공지사항2</li></ol>" //a.innerHTML = html; //Node형태 var ol = document.createElement("ol"); //ol태그생성 var li = document.createElement("li"); //li태그생성 var text = "공지사항"; li.append(text); //append : 해당 태그안에 값을 입력 ol.append(li); a.append(ol); </script>
- 반복문 - node로 생성<body> <div id="box"></div> </body> <script> var menu = ["신규상품","이벤트상품","MD추천상품","고객센터"]; var box = document.getElementById("box") var i; for(i=0; i<menu.length; i++){ var sp = document.createElement("span"); sp.append(menu[i]); box.append(sp); } </script>
⚡ Node 추가,삭제,중간삽입
append, prepend, before, after, insertBefore, remove, removeChild
<body> <div id="box"> <label>강감찬</label> <label>이순신</label> </div><br><br> <input type="button" value="노드추가1" onclick="aaa()"> <input type="button" value="노드추가2" onclick="bbb()"> <input type="button" value="노드추가3" onclick="ccc()"> <input type="button" value="노드중간삽입" onclick="ddd()"> <input type="button" value="노드삭제" onclick="eee()"> <br><br> </body> <script> //HTML 해당 id 안에 객체를 생성 var html = document.getElementById("box"); var no=0; //append,prepend : 해당 id기준 안쪽 위,아래 function aaa(){ var lb = document.createElement("label"); lb.append(no); html.append(lb); no++; } function ccc(){ var lb = document.createElement("label"); lb.append(no); html.prepend(lb); no++; } //before,after : 해당 id기준 바깥쪽 위,아래 function bbb(){ var lb = document.createElement("label"); lb.append(no); html.after(lb); no++; } //노드 중간삽입 //insertBefore : 노드가 있는 상황에서 해당 위치에 값을 추가할 때 사용 //id태그 기준 앞에 추가 function ddd(){ var lb = document.createElement("label"); lb.append(no); html.insertBefore(lb,html.children[1]); no++; } //노드삭제 //remove : 통째로 제거 //removeChild : 원하는 노드번호를 입력하여 삭제하는 방식 function eee(){ //html.remove(); //html.firstChild.remove(); html.removeChild(html.children[0]); //box안 첫번째 요소 삭제 } </script>
⚡ split을 이용하여 node로 상품 출력하기
<body> <!--- <li><input type="radio" name="product" value="모니터">모니터</li> --> <ul id="product"></ul> </body> <script> var html = document.getElementById("product"); var prd = "키보드,마우스,스피커,모니터,CPU,메모리"; var arr_prd = prd.split(","); var ea = arr_prd.length; var w=0; while(w<ea){ var li = document.createElement("li"); var la = document.createElement("label"); var inputs = document.createElement("input"); //input tag 생성 inputs.type="radio"; //input 속성 inputs.name="product"; //input name inputs.value=arr_prd[w]; //input value li.append(la); la.append(inputs); la.append(arr_prd[w]); html.append(li); w++; } </script>
⚡ 응용문제
<body> <!-- 게시물이 출력되도록 node로 코드를 작성하시오. 체크박스를 이용, 다음과같은 배열값을 출력하시오 <label><input type="checkbox">공지사항 게시물1</label> --> <div id="notice"></div> </body> <script> var list = ["자바 앱을 빠르게 성능 튜닝", "자바 18 릴리스의 꽃 심플 웹서버", "REST의 현실적인 대안 방법", "자바 17 1년만에 430% 성장"]; var noti = document.getElementById("notice"); var d=0; do{ var label= document.createElement("label"); label.style.display="block"; var input = document.createElement("input"); input.type = "checkbox"; label.append(input); label.append(list[d]); noti.append(label); d++; }while(d<list.length); </script>
⚡ forEach
<script> var data = ["홍길동","강감찬","유관순","장보고"]; //배열 전용 data.forEach(function(a,b,c){ console.log(a,b,c); //a: 데이터값(자기자신) , b:노드번호, c:배열전체 (인자값 암거나 써도 됨) }); </script>
'CLASS > HTLML,CSS,JS' 카테고리의 다른 글
#10-1 / js중급 - 자식노드핸들링,시간함수 (0) | 2024.06.11 |
---|---|
#9 / html include (by php) (0) | 2024.05.30 |
#7-4 / ECMA Script(ES5, ES6) (0) | 2024.04.26 |
#7-3 / HTML+CSS+JS 외부 로드 및 각종 핸들링 (0) | 2024.04.26 |
#7-2 / HTML 오브젝트에 데이터 출력 (0) | 2024.04.26 |