[ JavaScript ] 자바스크립트 기본 문법 | Text 객체 API(appendData,deleteData, insertData, nodeValue...)

2021. 2. 8. 21:55·Archive/Develop
728x90
반응형

이미지 출처 :   https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

 

 

이미지 출처 : https://opentutorials.org/course/1375/6740

 

 

 

 

자바스크립트 기본 문법  ::  Text 객체 

 

텍스트 객체는 텍스트 노드에 대한 DOM 객체로 CharcterData를 상속 받습니다.

 

아래는 텍스트 노드를 찾는 예제입니다.

 

 

우리가 주목할 것은 DOM에서는 공백이나 줄바꿈도 텍스트 노드라는 점입니다.

 

 

 

<p id="target1"><span>Hello world</span></p>
<p id="target2">
    <span>Hello world</span>
</p>
<script>
var t1 = document.getElementById('target1').firstChild;
var t2 = document.getElementById('target2').firstChild;
 
console.log(t1.firstChild.nodeValue);
console.log(t2.nextSibling.firstChild.nodeValue);
 
</script>

 

 

 

 

 

 

 

target1의 첫번째 자식은 p 엘리먼트 입니다. 사이에 공백이 없기 때문이죠.

 

반면 target2 의 첫번째 자식은 text 입니다.

 

줄바꿈이나 공백 같은 것도 하나의 객체라고 인식하기 때문입니다.

 

 

따라서 Hello world 를 출력하고 싶다면, 첫번째 자식의 형제 관계를 찾아야하는 겁니다.

 

 

 

자바스크립트 기본 문법  ::  Text 객체 주요기능

 

값

 

아래 리스트는 텍스트 노드의 값을 가져오는 API입니다.

  • data
  • nodeValue

 

조작

아래 리스트는 텍스트 노드의 값을 조작할 수 있는 API 입니다.

  • appendData()
  • deleteData()
  • insertData()
  • replaceData()
  • subStringData()

 

생성

 

Text 노드를 생성하러면 document 의 createTextNode 메소드를 이용해야합니다.

 

 

  • docuemnt.createTextNode()

 

 

 

자바스크립트 기본 문법  ::  Text 객체 주요기능( 값 변경)

 

 

 

 

<ul>
    <li id="target">html</li> 
    <li>css</li>
    <li>JavaScript</li>
</ul>
<script>
    var t = document.getElementById('target').firstChild;
    console.log(t.nodeValue);
    console.log(t.data);
</script>

 

 

위의 예제코드를 실행시키면 아래와 같은 결과가 출력됩니다.

 

 

 

 

text 노드의 값을 조회할 수 있는 것 뿐만 아니라 변경하는 것도 가능합니다.

 

 

<ul>
    <li id="target">html</li> 
    <li>css</li>
    <li>JavaScript</li>
</ul>
<script>
    var t = document.getElementById('target').firstChild;
	t.nodeValue = '~~change~~';
    console.log(t.nodeValue);
	t.data = '===hahahaha===';
    console.log(t.data);
</script>

 

 

 

 

 

 

 

자바스크립트 기본 문법  ::  Text 객체 주요기능( 값 조작)

 

 

 

 

<!DOCTYPE html>
<html>
<head>
    <style>
    #target{
        font-size:77px;
        font-family: georgia;
        border-bottom:1px solid black;
        padding-bottom:10px;
    }
    p{
        margin:5px;
    }
    </style>
</head>
<body>
<p id="target">Cording everybody!</p>
<p> data : <input type="text" id="datasource" value="JavaScript" /></p>
<p>   start :<input type="text" id="start" value="5" /></p>
<p> end : <input type="text" id="end" value="5" /></p>
<p><input type="button" value="appendData(data)" onclick="callAppendData()" />
<input type="button" value="deleteData(start,end)" onclick="callDeleteData()" />
<input type="button" value="insertData(start,data)" onclick="callInsertData()" />
<input type="button" value="replaceData(start,end,data)" onclick="callReplaceData()" />
<input type="button" value="substringData(start,end)" onclick="callSubstringData()" /></p>
<script>
    var target = document.getElementById('target').firstChild;
    var data = document.getElementById('datasource');
    var start = document.getElementById('start');
    var end = document.getElementById('end');
    function callAppendData(){
        target.appendData(data.value);
    }
    function callDeleteData(){
        target.deleteData(start.value, end.value);
    }
    function callInsertData(){
        target.insertData(start.value, data.value); 
    }
    function callReplaceData(){
        target.replaceData(start.value, end.value, data.value);
    }
    function callSubstringData(){
        alert(target.substringData(start.value, end.value));
    }
</script>
</body>
</html>

 

 

 

첫번째 callAppendData() 을 실행시키면,

target 바로 뒤에 datasouce id 를 가진 엘리먼트의 value 를 추가합니다.

 

callDeleteData() 를 실행시키면,

첫번째 인자로 주어진 start.value 부터 end.value 까지 의 Text 를 삭제합니다.

 

 

우선 두개를 먼저 실행시킨 결과를 확인해보도록 하겠습니다.

 

 

 

 

 

 

 

callInsertData() 를 실행시키면,

첫번째 인자인 start.value 를 시작으로 해서 data.value 를 추가합니다.

 

callReplaceData() 를 실행시키면,

첫번째 인자인 start.value 부터 end.value 까지 data.vale 로 치환합니다.

 

callSubstringData() 를 실행시키면,

첫번째 인자인 start.value 부터 end.value 까지를 리턴합니다.

 

 

 

문서를 새로고침하고, callInsertData 를 실행시킨 결과부터 봅시다.

 

 

 

 

 

 

또다시 문서를 새로고침하고, callReplaceData 를 실행시킨 결과를 보겠습니다.

 

 

 

 

또다시 문서를 새로고침하고, callSubstringData 를 실행시킨 결과를 보겠습니다.

 

 

 

 

 

 

 

alert 창으로 ng ev 라는 값이 출력됩니다.

 

왜 4개가 출력되지? 라고 생각하시는 분이 계실 것 같아 덧붙이자면,

중간에 들어있는 공백도 문자 취급을 하기 때문에 총 5개가 출력되는 것이 맞습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | 이벤트리스너(addEventListener, 클릭 이벤트)  (0) 2021.02.09
[ JavaScript ] 자바스크립트 기본 문법 | 문서의 기하학적 특성(스크롤 제어, Viewport, getBoundingClientRect())  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | Document 객체  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | 문자열로 노드제어(innerHTML, outerHTML,innerText, outerText)  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | jQuery 노드 변경 API(before,after,prepend,append,remove,empty...)  (0) 2021.02.08
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | 이벤트리스너(addEventListener, 클릭 이벤트)
  • [ JavaScript ] 자바스크립트 기본 문법 | 문서의 기하학적 특성(스크롤 제어, Viewport, getBoundingClientRect())
  • [ JavaScript ] 자바스크립트 기본 문법 | Document 객체
  • [ JavaScript ] 자바스크립트 기본 문법 | 문자열로 노드제어(innerHTML, outerHTML,innerText, outerText)
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    C++
    Oracle
    비박스
    파이썬 기초 문제
    docker
    파이썬 문제
    파이썬 알고리즘
    자바스크립트
    Git
    백준 풀이
    백준
    자바스크립트 API
    카카오 100일 프로젝트
    코드업 파이썬 기초 100제
    오라클
    코드업 기초
    자바스크립트 객체
    javascript
    Python
    파이썬 백준
    Codeup
    oracle db
    코드업
    Django
    장고
    파이썬
    보안뉴스
    백준 파이썬
    백준 문제풀이
    파이썬 기초
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 기본 문법 | Text 객체 API(appendData,deleteData, insertData, nodeValue...)
상단으로

티스토리툴바