일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 보안뉴스한줄요약
- 자바스크립트 객체
- 자바스크립트 jQuery
- 파이썬
- php
- 보안뉴스요약
- oracle
- 다크웹
- 자바스크립트 prototype
- 자바스크립트 기본 문법
- GIT
- python
- 카카오프로젝트 100
- 깃허브
- 자바스크립트 API
- Oracle SQL
- 카카오프로젝트
- numpy
- 보안뉴스
- 자바스크립트 node
- 자바스크립트 element api
- 랜섬웨어
- ES6
- javascript
- oracle db
- 오라클
- 카카오프로젝트100
- 자바스크립트
- 보안뉴스 한줄요약
- 보안뉴스 요약
- Today
- Total
FU11M00N
[ JavaScript ] JS 문자열로 노드 제어 (innerHTML,outerHTML, innerText, outerText,insertAdjacentHTML()) 본문
[ JavaScript ] JS 문자열로 노드 제어 (innerHTML,outerHTML, innerText, outerText,insertAdjacentHTML())
호IT 2021. 2. 8. 23:24
생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅입니다.
- 문자열로 노드 제어
- innerHTML
innerHTML은 문자열로 자식 노드를 만들 수 있는 기능을 제공합니다.
또한 자식 노드의 값을 읽어올 수도 있습니다.
- innerHTML 예제
<ul id="target">
<li>HTML</li>
<li>CSS</li>
</ul>
<input type="button" onclick="get();" value="get" />
<input type="button" onclick="set();" value="set" />
<script>
function get(){
var target = document.getElementById('target');
console.log(target.innerHTML);
}
function set(){
var target = document.getElementById('target');
target.innerHTML = "<li>JavaScript Core</li><li>BOM</li><li>DOM</li>";
}
</script>
get 버튼을 누르면 콘솔창에 위와 같은 결과가 출력됩니다.
innerHTML 로 타겟의 하위 html 태그를 얻어옵니다.
set 버튼을 누르면 html 문서가 변해서 출력됩니다.
- outerHTML
outerHTML은 선택한 엘리먼트를 포함해서 처리됩니다.
innerHTML 은 선택한 엘리먼트 하위의 엘리먼트들을 다뤘지만,
outerHTML 선택한 엘리먼트를 포함한다는 점에서 차이가 있습니다.
- outerHTML 예제
<ul id="target">
<li>HTML</li>
<li>CSS</li>
</ul>
<input type="button" onclick="get();" value="get" />
<input type="button" onclick="set();" value="set" />
<script>
function get(){
var target = document.getElementById('target');
console.log(target.outerHTML);
}
function set(){
var target = document.getElementById('target');
target.outerHTML = "<ol><li>JavaScript Core</li><li>BOM</li><li>DOM</li></ol>";
}
</script>
get 버튼을 눌렀을 때의 결과는 아래와 같습니다.
타겟을 포함해서 출력하는 것을 알 수 있습니다.
set 버튼을 누르면 위의 사진과 같이 됩니다.
- innerText, outerText
innerHtml, outerHTML과 다르게 이 API들은 값을 읽을 때는
HTML 코드를 제외한 문자열을 리턴하고, 값을 변경할 때는 HTML의 코드를 그대로 추가합니다.
- innerText, outerText 예제
<ul id="target">
<li>HTML</li>
<li>CSS</li>
</ul>
<input type="button" onclick="get();" value="get" />
<input type="button" onclick="set();" value="set" />
<script>
function get(){
var target = document.getElementById('target');
console.log(target.innerText);
}
function set(){
var target = document.getElementById('target');
target.innerText = "<li>JavaScript Core</li><li>BOM</li><li>DOM</li>";
}
</script>
get 버튼을 누르면 콘솔창에 텍스트만 나옵니다.
set 버튼을 누르면 위와 같이 문서가 변합니다.
- insertAdjacentHTML()
정교하게 문자열을 이용해서 노드를 변경하고 싶을 때 사용합니다.
<ul id="target">
<li>CSS</li>
</ul>
<input type="button" onclick="beforebegin();" value="beforebegin" />
<input type="button" onclick="afterbegin();" value="afterbegin" />
<input type="button" onclick="beforeend();" value="beforeend" />
<input type="button" onclick="afterend();" value="afterend" />
<script>
function beforebegin(){
var target = document.getElementById('target');
target.insertAdjacentHTML('beforebegin','<h1>Client Side</h1>');
}
function afterbegin(){
var target = document.getElementById('target');
target.insertAdjacentHTML('afterbegin','<li>HTML</li>');
}
function beforeend(){
var target = document.getElementById('target');
target.insertAdjacentHTML('beforeend','<li>JavaScript</li>');
}
function afterend(){
var target = document.getElementById('target');
target.insertAdjacentHTML('afterend','<h1>Server Side</h1>');
}
</script>
하나하나 실행시켜 가보겠습니다.
- beforebegin
먼저 beforebegin 함수를 실행한 결과입니다.
target 이 시작되기 전에 h1 태그가 추가되는 것을 알 수 있습니다.
- afterbegin
target 이 시작한 후에 바로 태그가 추가되는 것을 확인할 수 있습니다.
- beforeend
target 이 끝나기 전에 태그가 추가됩니다.
- afterend
target이 끝나고 난 후에 h1 태그가 추가되는 것을 알 수 있습니다.
SUA 정보보안 멘토링에 참여하고 있습니다.
'SUA 정보보안 > JavaScript' 카테고리의 다른 글
[ JavaScript ] JS Text 객체 API (callAppendData() callDeleteData() callInsertData() callReplaceData() callSubstringData() ) (0) | 2021.02.09 |
---|---|
[ JavaScript ] JS Document 객체 (0) | 2021.02.08 |
[ JavaScript ] JS jQuery 노드 (추가,제거,변경,복사,복사,이동) (0) | 2021.02.08 |
[ JavaScript ] JS 노드 추가, 생성 , 제거 , 변경 API (0) | 2021.02.08 |
[ JavaScript ] JS 노드 종류 API , nodeType과 nodeName (0) | 2021.02.08 |