본문 바로가기
HTML+CSS+Javascript/Javascript

10. DOM 객체 다루기

by 김마리님 2020. 3. 12.

- DOM객체의 CSS3 스타일 동적 변화

DOM객체의 스타일은 DOM 객체의 style 프로퍼티로 접근할 수 있다. 단, DOM 객체를 이용할 때는, background-color 처럼 (-)를 사용하지 않고 backgroundColor 등으로 표현한다.

    <script>
        function change(){
            var span=document.getElementById("mySpan");
            span.style.color="green";
            span.style.fontSize="30px";
            span.style.display="block";
            span.style.width="6em";
            span.style.border="3px dotted magenta";
            span.style.margin="20px";
        }
           function change1(){
            var span=document.getElementById("mySpan");
            span.style.color="red";
            span.style.fontSize="";
            span.style.display="";
            span.style.width="";
            span.style.border="";
            span.style.margin="";
        }
    </script>
</head>
<body>
    <h3>CSS스타일 동적 변경</h3><hr>
    <p style="color:blue" >이것은
         <span id="mySpan" style="color:red">문장입니다.  </span>
    </p>
    <input type="button" value="스타일 변경" onclick="change()">
    <input type="button" value="스타일 유지" onclick="change1()">
</body>

다음과 같이 getElement속성으로 아이디를 한정하고, 아이디 내부의 span 객체 프로퍼티를 설정해서 CSS 스타일을 변경할 수 있다.

 

 

-DOM 객체의 innerHTML 프로퍼티

innerHTML을 이용하면 태그 사이의 HTML을 컨텐츠를 읽을 수 있게 해준다.

    <title>Document</title>
    <script>
        function change(){
            var p=document.getElementById("firstP");
            p.innerHTML="나의 <img src='media/dog.jpg' width=30%>강아지";
        }
    </script>
</head>
<body>
    <p id="firstP" style="color: royalblue;" onclick="change()">여기에
    <span style="color: saddlebrown;">클릭하세요.</span>
    </p>
</body>

onclick 이벤트가 일어나면 innerHTML을 이용해 p내부의 컨텐츠를 읽어내고, p태그의 컨텐츠를 변경하는 자바스크립트 코드이다.

 

 

-this 키워드

    <script>
        function change(obj,size,color){
            obj.style.color=color;
            obj.style.fontSize=size;
        }
        function change2(){
            t=document.getElementById("n1")
            t.style.color="red";
            t.style.fontSize="50px"
        }
        </script>
</head>
<body>
    <h3>this 활용</h3><hr>
    <button onclick="change(this,'30px','red')">버튼1</button>
    <button onclick="change(this,'40px','blue')">버튼2</button>
    <p id="n1" onclick="change2()">여기 클릭</p>
    <!--<p id="n1" onclick="change2()">여기 클릭1</p>-->
</body>

이 때 this는 태그 자신을 가리키는 말이다. 따라서, 버튼이 두개 있어도 하나의 버튼만 값이 변화된다.

또 위에서 지정한 getElement 속성에 의해 id가 일치하는 DOM객체를 불러내 속성을 변화시킨다.

반응형

'HTML+CSS+Javascript > Javascript' 카테고리의 다른 글

12. HTML 문서의 동적 구성  (0) 2020.03.13
11. document  (0) 2020.03.13
9. HTML DOM 개요  (0) 2020.03.12
8. 배열  (0) 2020.03.11
7. 객체  (0) 2020.03.11