[ 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 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바