javascript

[Javascript] getElementsByClassName 사용시 주의점

http://portfolio.wonpaper.net 2023. 8. 1. 01:03

특정 클래스명들을 땡겨올 수 있는 놈이 getElementsByClassName 인데 이는 복수의 배열처리로 연결됨을 꼭 주시해 주기 바란다. 

 

getElementById("o_btn")[0]

getElementById("o_btn")[1]

getElementById("o_btn")[2]

...

이런식으로 index 처리로 여러개의 o_btn class 명들이 있을때 그 순번을 0,1,2 각각 이런식으로 대응된다.

 

 

cf ) getElementById 는 단일의 id 값을 땡겨올때 (복수가 아니다)

 

아래의 예제를 참고해보자 ~

 

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
32
<style>
.o_btn {background:#999; color:#fff;}
.x_btn {background:#999; color:#fff;}
</style>
 
 
<ul class="ox_list">
    <li><div class="o_btn" onclick="btnColorClick('o')">O</div></li>
    <li><div class="x_btn" onclick="btnColorClick('x')">X</div></li>
</ul>
 
<form name="f1" method="get">
    <input type="hidden" id="ans1"  name="ans1"  value="">
</form>
 
<script>
function btnColorClick(mode) {
    switch(mode)
    {
        case "o" : 
            document.getElementsByClassName("o_btn")[0].style.backgroundColor="#143c8c";
            document.getElementsByClassName("x_btn")[0].style.backgroundColor="#999";
            document.getElementById("ans1").value="0";
            break;
        case "x" :
            document.getElementsByClassName("o_btn")[0].style.backgroundColor="#999";
            document.getElementsByClassName("x_btn")[0].style.backgroundColor="#f21d44";
            document.getElementById("ans1").value="1";
            break;
    }
}
</script>
cs