강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

innerText, outerText, innerHTML, outerHTML
작성자 : 99 단국강토
등록날짜 : 2009.01.06 10:30
3,937

인터넷 익스플로러 4 이후부터는 웹 문서의 내용을 동적으로 변경시킬 수 있는 다양한 속성과 메쏘드를 제공하고 있는데 그 중 웹 페이지의 요소들에 들어있는 값을 확인하고, 그 요소의 값을 변경할 때 필요한 4가지 속성을 먼저 살펴본다면 다음과 같다.

  • innerText
  • outerText
  • innerHTML
  • outerHTML

위 속성을 사용한 예제들을 살펴보면서 각 속성의 차이점을 알아 보도록 하자.

우선 다음과 같은 코드가 있다고 하자.

 

<p id="myP"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>

 

이제 자바스크립트를 이용하여 위의 <p> 단락을 클릭하면 다음과 같이 innerText 속성을 변경하도록 해보자.

 

document.all.myP.innerText = "<b>e비즈니스</b> 및 <b>IT</b> 전문가를 위한 <font color="navy"><b>지식 미디어</b></font>"

 

결과가 궁금한 사람은 아래 "코리아인터넷닷컴에 오신 것을 환영합니다!" 단락을 클릭해 보기 바란다.

코리아인터넷닷컴에 오신 것을 환영합니다!

 

결과는

<b>e비즈니스</b> 및 <b>IT</b> 전문가를 위한 <font color=navy><b>지식 미디어</b></font>

 

 

이번엔 <p> 단락을 클릭하면 다음과 같이 innerHTML(대소문자 주의) 속성을 변경하도록 해보자.

 

document.all.myP.innerHTML = "<b>e비즈니스</b> 및 <b>IT</b> 전문가를 위한 <font color="navy"><b>지식 미디어</b></font>"

 

결과가 궁금한 사람은 아래 "코리아인터넷닷컴에 오신 것을 환영합니다!" 단락을 클릭해 보기 바란다.

코리아인터넷닷컴에 오신 것을 환영합니다!

 

결과는

e비즈니스IT 전문가를 위한 지식 미디어

 

위의 결과를 보면 알겠지만 innerText 속성엔 HTML 태그를 삽입하여도 태그 자체를 텍스트로 인식해 버린다. 그에 반해 innerHTML 속성에 HTML 태그가 들어있는 텍스트를 설정하면 해당 태그를 해석할 수가 있다.

 

이번엔 outerText와 outerHTML에 대해 알아 보자. outerText와 OuterHTML은 태그 요소 안에 들어 있는 내용뿐만 아니라 태그 요소 자체도 포함하고 있는 속성이다.

이에 대한 명확한 이해를 돕기 위해 다음과 같은 테스트를 해보도록 하자.

  • <p id="myP" onclick="alert(this.innerText)"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

    코리아인터넷닷컴에 오신 것을 환영합니다!

    결과는
    alert 로 코리아인터넷닷컴에 오신 것을 환영합니다!

  •  <p id="myP" onclick="alert(this.innerHTML)"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

    코리아인터넷닷컴에 오신 것을 환영합니다!

          결과는 
          alert 로 <b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!

  •   <p id="myP" onclick="alert(this.outerText)"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

코리아인터넷닷컴에 오신 것을 환영합니다!

결과는

alert 로 코리아인터넷닷컴에 오신 것을 환영합니다!

  •  <p id="myP" onclick="alert(this.outerHTML)"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

    코리아인터넷닷컴에 오신 것을 환영합니다!

    결과는 <p id="myP" onclick="alert(this.outerHTML)"><b>코리아인터넷닷컴</b>에 오신 것을 환영합니다!</p>

위의 결과만을 놓고 보면 innerText와 outerText가 동일한 것처럼 보인다. 그렇다면 이 두 속성은 어떤 차이가 있는 것일까? 이 부분도 명확한 이해를 돕기 위해 예를 들어 설명하도록 하겠다.

  • <H3 id="myH3" onclick="this.innerText='e비즈니스 및 IT 전문가를 위한 지식 미디어'">코리아인터넷닷컴에 오신 것을 환영합니다!</H3>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

    코리아인터넷닷컴에 오신 것을 환영합니다!

    결과는

    e비즈니스 및 IT 전문가를 위한 지식 미디어

  •  <H3 id="myH3" onclick="this.outerText='e비즈니스 및 IT 전문가를 위한 지식 미디어'">코리아인터넷닷컴에 오신 것을 환영합니다!</H3>
    결과확인 : (아래 단락을 마우스로 클릭하세요!)

코리아인터넷닷컴에 오신 것을 환영합니다!

결과는
e비즈니스 및 IT 전문가를 위한 지식 미디어

위 두 결과에 대한 차이점은 무엇인가? innerText는 해당 텍스트를 포함하고 있는 태그 요소는 변경되지 않은 채 순수한 텍스트만 변경되었다. 하지만 outerText는 해당 텍스트를 포함하고 있는 태그 요소(여기서는 H3 요소)까지 모두 새로운 텍스트로 변경되므로 H3 속성은 없어지게 된다.

지금까지 innerText, innerHTML, outerText, outerHTML에 대한 간략한 특징들에 대해 살펴보았다. 다음 시간엔 각 속성의 세부적인 특성에 대해 살펴보기로 하겠다.

 

innerText

innerText 속성을 지원하는 객체의 시작 태그와 종료 태그 사이에 있는 텍스트를 설정하거나 가지고 올 수가 있다.

HTML, TABLE, TBODY, TFOOT, THEAD, TR 객체 요소에서의 innerText 속성은 값을 가지고 올 수만 있고 설정할 수는 없다. 테이블과 관련한 요소의 값을 변경하려면 테이블 오브젝트 모델을 별도로 이용해야 한다.

 

innerText의 간단한 예제

아래 단락에 마우스를 올려 놓았다 떼면 텍스트가 동적으로 변하는 것을 확인할 수 있을 것이다.

 

코리아인터넷닷컴에 오신 것을 환영합니다!

 

위 결과에 대한 소스 코드는 다음과 같다.

<p onmouseover="this.innerText='e비즈니스 및 IT 전문가를 위한 지식 미디어!'" onmouseout="this.innerText='코리아인터넷닷컴에 오신 것을 환영합니다!'">코리아인터넷닷컴에 오신 것을 환영합니다!</p>

 

 

innerHTML

innerHTML은 innerHTML 속성을 지원하는 객체의 시작 태그와 종료 태그 사이에 있는 HTML을 설정하거나 가지고 올 수가 있다.

COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 객체 요소에서의 innerHTML 속성은 값을 가지고 올 수만 있고 설정할 수는 없다.

 

innerHTML 속성은 해당 웹 문서를 완전히 읽어들인 후(onLoad 이벤트 발생 후)에야 사용할 수 있다. innerText는 HTML 태그 조자 텍스트로 인식하지만 innerHTML은 HTML 태그를 해석할 수가 있다.

 

innerHTML의 간단한 예제.

아래 버튼을 클릭하면 이미지가 하나 새로 생겨날 것이다. 해당 이미지를 클릭하면 동적으로 삽입한 스크립트가 실행되는 것을 확인할 수 있을 것이다.

 

소스는 다음과 같다.

위 결과에 대한 소스 코드는 다음과 같다.

<SCRIPT>
    function insertHTML(){
        var strHTML="<a href='javascript:void(0);' onclick='scriptTest()'>

                            <img src='/images/photoshop/020122p_04.jpg' border=0></a>";
        var strScript="<SCRIPT DEFER>";
        strScript = strScript + "function scriptTest(){ alert('동적으로 스크립트를 삽입하는

                                                                              것이 가능합니다!') }";
        strScript = strScript + "</SCRIPT" + ">";
        objImg.innerHTML = strHTML + strScript;
    }    
</SCRIPT>
<input type="button" value="innerHTML예제 보기" onclick="insertHTML()">
<div id=objImg></div>

위 소스 코드를 보면 알겠지만 이미지 삽입과 스크립트 삽입은 웹 문서를 다 읽은 후 동적으로 생성하고 있다. 여기서 주의해할 점은 스크립트를 동적으로 삽입할 경우 DEFER 속성을 반드시 사용해야 한다는 것이다. 이것은 단순한 하나의 예에 불과하다. 이 innerHTML 속성을 잘 사용하면 동적으로 웹 문서의 내용을 변경하여 인터랙티브한 기능들을 많이 구현할 수 있다.

 

 

 

outerText

outerText는 outerText 속성을 지원하는 객체의 텍스트를 설정하거나 가지고 올 수가 있다. HTML, TABLE, TBODY, TFOOT, THEAD, TR 객체 요소에서의 outerText 속성은 값을 가지고 올 수만 있고 설정할 수는 없다. 테이블과 관련한 요소의 값을 변경하려면 테이블 오브젝트 모델을 별도로 이용해야 한다.

outerText는 얼핏 보면 innerText와 비슷하다. 하지만 그 차이에 대해선 이미 지난 시간에 살펴본 적이 있다. outerText가 innerText와 다른 부분을 잘 보여주는 예 한 가지를 더 살펴보자.

다음과 같은 소스 코드가 있다고 가정해 보자.

<div id=objDiv>
<p id=objPara>코리아인터넷닷컴에 오신 것을 환영합니다!</p>
</div>

만일 여기서 objPara.outerText="e비즈니스 및 IT 전문가를 위한 지식 미디어!"라고 하면 위의 소스 코드는 내부적으로 다음과 같이 변경되어 있을 것이다.

<div id=objDiv>
e비즈니스 및 IT 전문가를 위한 지식 미디어!
</div>

하지만 objPara.innerText="e비즈니스 및 IT 전문가를 위한 지식 미디어!"라고 한다면 위의 소스 코드는 내부적으로 다음과 같이 변경되어 있을 것이다.

<div id=objDiv>
<p id=objPara>e비즈니스 및 IT 전문가를 위한 지식 미디어!</p>
</div>

innerText보다 사용할 기회는 많지 않지만 그 차이점은 분명히 기억하고 있기를 바란다.

 

outerHTML

outerHTML은 outerHTML 속성을 지원하는 객체의 시작 태그와 종료 태그 사이에 있는 HTML을 설정하거나 가지고 올 수가 있다. COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 객체 요소에서의 outerHTML 속성은 값을 가지고 올 수만 있고 설정할 수는 없다. outerHTML 속성은 해당 웹 문서를 완전히 읽어들인 후(onLoad 이벤트 발생 후)에야 사용할 수 있다.

outerHTML은 얼핏 보면 innerHTML과 비슷하다. 하지만 그 차이에 대해선 이미 지난 시간에 살펴본 적이 있다.

outerHTML을 활용하는 예를 하나 살펴보도록 하자. 아래 리스트 아이템을 마우스로 클릭하면 해당 객체가 그대로 하단에 복사되는 것을 확인할 수 있을 것이다. 이 때 아이템의 텍스트를 클릭하는 것과 <li> 부분 (텍스트 앞의 점으로 표시된 부분)을 클릭하는 것이 어떻게 다른지도 비교해 보기 바란다.

  • 코리아인터넷닷컴
  • e비즈니스 및 IT 전문가를 위한 지식 미디어
  • korea.internet.com

여기서 사용한 소스 코드는 다음과 같다.

<SCRIPT>
function copyHTML(){
   var objTag = event.srcElement;
   alert("선택한 객체 : " + objTag.outerHTML);
   objDiv.innerHTML += objTag.outerHTML + "<BR>";
}       
</SCRIPT>

<ul onclick="copyHTML()">
<li><b>코리아인터넷닷컴</b>
<li><font color="#d03030"><strong>e비즈니스 및 IT 전문가를 위한 지식 미디어</strong></font>
<li><strike>korea.internet.com</strike>
</ul>

<DIV ID = "objDiv">
</DIV>

 

e비즈니스 및 IT 전문가를 위한 지식 미디어 클릭 objTag.outHTML 값은

  : <strong>e비즈니스 및 IT 전문가를 위한 지식 미디어</strong>

● e비즈니스 및 IT 전문가를 위한 지식 미디어클릭 objTag.outHTML 값은

  : <li><font color="#d03030"><strong>e비즈니스 및 IT 전문가를 위한 지식 미디어

    </strong></font>

 

outer 는 태그를 포함해서 값을 취하고, inner는 태그를 포함하지 않고 시작태크와 종료태그 안의 값을 제어한다.

 

출저 : 코리아인터넷닷컴

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3195 바탕화면 아이콘 변경 M 최고의하루 12.23 4063
3194 오라클(Oracle) 날짜 관련 함수 정리 13 김영철 01.23 4061
3193 innerTEXT와 innerHTML의 유용함 99 단국강토 02.09 4050
3192 각종 확장자 파일 M 최고의하루 12.24 4032
3191 오라클 캐릭터 셋 변경 M 최고의하루 01.12 4029
3190 이것은 AI파일 미리보기입니다. 댓글2 M 최고의하루 01.15 4029
3189 Ajax 간단한 예제(우편번호검색) 13 김영철 01.29 4021
3188 포토샵으로 털그리기 10 액션쟁이 01.02 4020
3187 php 설치관련 문의내용 정리 13 김영철 01.14 4015
3186 vb 마우스휠 2 아론k 06.24 4014
3185 UltraWebGrid Tips 99 단국강토 01.13 4009
3184 PHP 답변형 게시판 / 자료실 /PHP강좌 13 김영철 01.13 3995
3183 [펌] 제11강 - ADO(Active Database Object) - Database Access Component Cobol vs C#-1 M 최고의하루 12.23 3985
3182 엑셀형식 가계부 3종 댓글2 2 비비드바비 04.29 3960
3181 Windows Server 2003 에서 IIS 6 + PHP 4.3.2 설정법 M 최고의하루 12.19 3959
3180 간편 스크롤캡쳐프로그램!!!! 2 무라사키 02.17 3953
3179 rsync윈도우에서 리눅스로 백업하기 13 김영철 01.29 3952
3178 award bios 어워드 바이오스 설정법 M 최고의하루 12.18 3943
열람중 innerText, outerText, innerHTML, outerHTML 99 단국강토 01.06 3938
3176 아쿠아버튼 M 최고의하루 12.20 3937
3175 ScriptX 프린트 13 김영철 01.15 3932
3174 table,tr,td 의 innerHTML 속성으로 좀 가꾸놀기 99 단국강토 02.09 3924
3173 원격데스크톱 연결 (XP) M 최고의하루 12.20 3923
3172 MSSQL 내장 함수 목록 99 단국강토 01.03 3920
3171 꽤 괜찮다; - MMF 변환 프로그램 M 최고의하루 12.18 3920
3170 AJAX 관련 새로운 url 정리 13 김영철 01.29 3909
3169 MSSQL 기본 접속 포트 1433 변경 및 서버 alias 사용 99 단국강토 01.07 3908
3168 frame, iframe에서 쿠키, 세션 인증(로그인) 처리 안 될 때 해결 방법 13 김영철 01.14 3905
3167 네이트온글꼴바꾸기 댓글1 17 미니 04.27 3901
3166 Window에서 4G 이상의 메모리가 인식이 안될때 17 vane 12.27 3876
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취