⊹⠀𝙹𝚂

❏ js - 자바스크립트 HTML DOM ➋

김_코드 2023. 2. 3. 17:43

이번시간에는 DOM Attribute에 대해서 알아보겠습니다.

 

사용자가 브라우저에 입력하는 데이터는 DOM요소의 value 속성에 저장이 됩니다. 이 데이터를 사용하기 위해서는 DOM요소에 대한 접근을 한 후 해당 요소의 속성 정보에 접근해야 합니다.

 

그렇기에 이번에는 DOM요소에 접근하여 요소가 가지고 있는 속성을 읽고, 변경하는 방법에 대해서 알아보겠습니다.


✏ getAttribute()

 

 getAttribute 함수는 HTML요소의 속성 정보를 가져올 수 있습니다.

 

그럼 예제로 unput type="text" 요소에 사용자가 입력한 데이터를 가지고 오는 코드를 만들어 보겠습니다.

 

<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
    <input type="text" id="text1" value="apple">
    <script>
        let oText1 = document.getElementById("text1");
        let textValue = oText1.value;
        console.log(textValue);
            console.log(document.getElementById("text1").getAttribute("Value"));
    </script>
</body>
</html>

입력한 정보를 가지고 올 수 있었습니다!

✏ setAttribute()

 

버튼을 disabled 처리했다가 풀어줍니다.

 

<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
    <button onclick="doSave(event);">저장</button>
    <script>
        function doSave(e) {
            let obj = e.target;
            obj.disabled = true; //사용자가 중복해서 버튼을 클릭하지 못하도록 버튼을 disabled함.
            setTimeout(function(){
                obj.disabled = false;
            }, 2000);  //저정완료 후 2초가 소요된것으로 가정, 2초후 버튼을 다시 활성화시킴.
        }
    </script>
</body>
</html>

2초후 버튼이 다시 활성화되는 것을 볼 수 있습니다!

 

✏ hasAttribute()

 

HTML요소에 특정 속성이 있는지 확인하는 함수입니다.

특정 속성이 있는 경우는 참(true)을 없는 경우는 거짓(false)을 반환합니다.

 

<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
    <input type="text" id="text1" value="apple" data-role="name">
    <script>
        let oText1 = document.getElementById("text1");
        console.log(oText1.hasAttribute("data-role"));
    </script>
</body>
</html>

특정 데이터가 있는 경우/ 특정 데이터가 없는 경우

특정속성인 data-role이 있었기 떄문에 참(true)을 반환했습니다.

 

✏ removeAttribute()

 

HTML 요소의 특정 속성을 삭제합니다.

 

<head>
    <title>Document</title>
</head>
<body>
    <input type="text" id="text1" value="apple" data-role="name">
    <script>
        let oText1 = document.getElementById("text1");
        oText1.removeAttribute("data-role");
        console.log(oText1.hasAttribute("data-role"));
    </script>
</body>

특정 속성이 삭제되었기 때문에 거짓으로 반환된것을 확인할 수 있었습니다.


( ˃ᴗ˂ )

즐거운 주말 되세요!