반응형
반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <style>
        .select{background:red;}
    </style>
</head>
<body>
    <ul>
        <li>Home</li>
        <li>Process</li>
        <li>About</li>
        <li class="select">Contact</li>
    </ul>    

    <script>
        $(function(){
            // 첫 번째 li에 클래스 속성 추가
            $('li').first().addClass('select');
            
            // 두번째 li의 클래스 제거
            $('li').last().removeClass('select');
        })
    </script>
</body>
</html>

📝addClass('클래스명')

클래스를 추가합니다.

 

📝removeClass('클래스명')

클래스를 제거합니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
 
</head>
<body>
    <ul>
        <li>Home</li>
        <li>Process</li>
        <li>About</li>
        <li class="select">Contact</li>
    </ul>    

    <script>
        $(function(){

            var attr = $('li').last().attr('class');
            console.log(attr); // select

            $('li').first().attr('style','border: 3px solid');
            
        });
    </script>
</body>
</html>

📝attr(속성)

요소속성을 읽어옵니다.

 

📝attr(속성, 값)

요소 속성과 값을 추가합니다.

 

📝removeAttr(속성)

요소 내 속성을 제거합니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
 
</head>
<body>
    <ul>
        <li>Home</li>
        <li>Process</li>
        <li>About</li>
        <li class="select">Contact</li>
    </ul>    

    <script>
        $(function(){
            $('li').first()
                .css('border','3px dashed')
                .css('background','pink');

            $('li').last().css({
                'border' : '3px dashed',
                'background' : 'azure'
            });

            var bgcolor = $('li').last().css('backgroundColor');
            console.log(bgcolor); // "rgb(240,255,255)"
        });
    </script>
</body>
</html>

📝css(속성)

css 속성을 읽어옵니다.

 

📝css(속성, 값)

css 속성을 변경합니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
 
</head>
<body>
    <ul>
        <li>Home</li>
        <li>Process</li>
        <li>About</li>
        <li class="select">Contact</li>
    </ul>    

    <script>
        $(function(){

            $('li').first().html('<h1>HTML 추가</h1>');
            $('li').last().text('<h1>HTML 추가</h1>');

            var html = $('li').first().html();
            var text = $('li').first().text();
            console.log(html); // "<h1>HTML 추가</h1>"
            console.log(text); // "HTML 추가"
        });
    </script>
</body>
</html>

📝html()

요소 내의 HTML을 읽어옵니다. (태그는 태그 취급을 해준다)

 

📝html(값)

요소 내 HTML을 추가합니다. (태그는 태그취급을 해준다)

 

📝text()

요소 내 텍스트를 읽어옵니다. (그냥 오로지 텍스트)

 

📝text(값)

요소 내 텍스트추가합니다. (그냥 오로지 텍스트)

 

반응형
반응형
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    
</head>
<style>

</style>
<body>
    <div class="parent">
        
        <div class="parent2">
            <div class="parent1">
                <h1> heading 1 </h1>
                <h2> heading 2 </h2>
                <p> 손자 p </p>
            </div>
        </div>
        <p class="child"> 자식 p1 </p>
        <p> 자식 p2 </p>
    </div>
    <script>
        $(document).ready(function(){
            $('.parent').children().css('font-style','italic');
            // parent라는 클래스의 후손을 선택해 적용 (여기선 전체적용 됨)
            $('h1').parent().css('border','3px solid');
            // h1의 부모요소를 선택해 적용 (parent1을 의미)
            $('h1').parents('.parent').css('border','6px orange double');
            // h1의 조상 parent를 탐색 (아빠는 parent1 조상은 그 위로 전부 parent2와 parent둘다 조상)
            $('.parent').children('.parent2').css('background','black');
            // parent 클래스의 바로 아들인 parent2를 찾아서 적용시킴 (후손x)
            $('.parent').find('h2').css('background','gray');
            // .parent의 하위 후손 h2를 검색한다('parent밑에 있는 애들은 다 후손이 됨')
            $('h1').next().css('font-size','50px');
            // h1태그의 다음 거 즉 h2의 크기를 바꾸도록 적용
            $('p').prev().css('color','blue');
            // p태그가 있는 곳에 전에 거를 파란색으로 바꾸게한다.여기선(parent2와 h2와 .child가 바뀐다.)
            $('.child').siblings().css('background','red'); 
            //child클래스 있는곳 왼쪽 오른쪽으로 css적용 (prev + next)하지만 자기자신은 적용x 여기선(parent2와 자식p2가 적인 p태그)
        });
    </script>
</body>
</html>

📝parent()

자신바로 위(부모)를 선택합니다.

 

📝parents()

매개변수에 지정한 이름의 조상을 선택합니다.

 

📝children()

매개 변수에 지정한 자식을 선택(후손x)

 

📝find()

그 밑에 있는 모든 자식 + 후손을 찾아 선택합니다.

 

📝sibilings

매개 변수에 지정한 형제요소(왼쪽 1개 오른쪽 1개)태그를 선택합니다.

 

📝prev()

이전 형제 요소를 선택합니다. 자기 바로 위에 있는 태그 선택합니다.

 

📝next()

다음 형제 요소를 선택합니다. 자기 바로 아래 있는 태그를 선택합니다.

 

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    
</head>
<style>

</style>
<body>
    <ul>
        <li>first</li>
        <li>second</li>
        <li>third</li>
        <li class="fourth">fourth</li>
        <li><em>fifth</em></li>
        <li>sixth</li>
    </ul>
    <script>
        $(document).ready(function(){
            $('li').eq(1).css('font-size','2em'); 
            // li중 1번째 인덱스 속성값 바꿈 (배열취급)
            $('li').filter('.fourth').css('font-style','italic');
            // fourth라는 클래스 이름에 적용시킴
            $('li').first().css('background-color','orange');
            // li의 첫번째 요소 (0번째 인덱스)
            $('li').last().css('border','3px solid');
            // li의 마지막 요소에 적용
            $('li').has('em').css('border','3px dotted');
            // li안에 em이라는 자식태그가 있는 곳에 적용
        });
    </script>
</body>
</html>

📝eq()

인덱스로 지정하는 것입니다.

 

📝.filter()

id나 클래스 등으로 적용시키는 것입니다.

 

📝.first()

첫번째 요소를 적용시키겠다는 의미입니다.

 

📝.last()

li의 마지막 요소에 적용시킵니다.

 

📝.has()

안에 어떤 지정된 요소가 있을 경우 그 요소에 적용시킵니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
 
</head>
<body>
    <ul>
        <li>Home</li>
        <li>Process</li>
        <li>About</li>
        <li class="select">Contact</li>
    </ul>    

    <script>
        $(function(){
            
            $('ul')
                .append('<li>append</li>')
                .children('li').last().css('border','3px solid');
        
            $('ul')
                .prepend('<li>prepend</li>')
                .children('li').first().css('border','3px solid');

            $('ul')
                .after('<div>안녕하세요 끝입니다.</div>');

            $('ul')
                .before('<div>안녕하세요 앞입니다.</div>');
        });
    </script>
</body>
</html>

📝append(추가할 태그)

선택자 안의 요소중 맨 뒤에 추가합니다.

 

📝prepend(추가할 태그)

선택자 안의 요소중 맨 앞에 추가합니다.

 

📝after(추가할 태그)

선택자의 뒤에 추가합니다 (형제)

 

📝before(추가할 태그)

선택자의 앞에 추가합니다 (형제)

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
 
</head>
<body>
    <figure>
        <img src ="1.jfif" width ="200" height="200">
        <img src ="2.jfif" width ="200" height="200">
        <img src ="3.jfif" width ="200" height="200">
        <img src ="4.jfif" width ="200" height="200">
    </figure>

    <button onclick ="img_move()">appendTo</button>
    <button onclick ="img_prepend()">prependTo</button>
    <script>
        function img_move(){
            $('img').first().appendTo('figure');
        }            

        function img_prepend(){
            $('img').last().prependTo('figure');
        }
    </script>
</body>
</html>

 

📝appendTo(요소명)

지정한 선택자(요소) 안의 뒤에 추가합니다.

 

📝prependTo(요소명)

지정한 선택자(요소) 안의 앞에 추가합니다.

반응형
반응형
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    
</head>
<style>

</style>
<body>
    <span>A</span>
    <h1>A</h1>
    <span id ="myId">A</span><br>
    <span class="myClass">A</span>
    <script>
        $(document).ready(function(){
            $('*').css('font-size','32px')// 전체 요소 선택
            $('h1').css('color','red');
            $('#myId').css('color','blue');
            $('.myClass').css('color','green');
        });
    </script>
</body>
</html>

jQuery의 선택자(태그명, ID명, 클래스명)를 선택해 속성을 변경하는 예시입니다.

$('선택자').css('속성', '속성값'); 

 

반응형
반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>

</style>
<body>
    <button id ="btn" style ="padding:10px"></button>
    <script>
        var btn = document.getElementById('btn');

        function setColor(){
            this.style.backgroundColor = '#333';
            this.style.color = 'orange';
        }

        btn.addEventListener('click',setColor);

    </script>
</body>
</html>

이와 같이 함수 정의를 따로 적어주는걸 이벤트 바인딩이라고합니다.

btn.addEventListner를 보시면 setColor를 안에서 적지 않고 밖에다 적어줬다

반응형
반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id ="btn">click</button>
    <script>
        var btn = document.getElementById("btn");
    
        btn.onclick = function(){
            alert("event 1");
        }

        btn.onclick = function(){
            alert("event 2");
        }
        
    </script>
</body>
</html>

기존의 이벤트 핸들러는 해당 요소에 하나의 이벤트만 적용시킬 수 있었습니다.

하지만 이벤트 리스너를 이용해 하나의 요소에 여러 개 이벤트 처리가 가능하게 됩니다.

위와 같은경우에는 두번째의 onclick으로 덮어씌워지게 됩니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id ="btn">click</button>
    <script>
        var btn = document.getElementById('btn');

        btn.addEventListener('click',function(){
            alert('event 1');
        });
        
        btn.addEventListener('click',function(){
            alert('event 2');
        });
    </script>
</body>
</html>

이와 같이 addEventListener를 이용해 클릭했을 때 콜백메소드를 호출합니다. 그래서 두개의 이벤트가 순차적으로 작동하게 됩니다.

 

.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        width: 100px; height:100px;
        border: 3px solid black;
    }

    #box.hover{
        background-color:orange;
        color:white;
    }
</style>
<body>
    <div id ="box">
        <p>마우스를 올려 주세요</p>
    </div>

    <script>
        var btn = document.getElementById('box');

        
        btn.addEventListener('mouseover',function(){
            box.setAttribute('class','hover');
        });
        
        btn.addEventListener('mouseout',function(){
            box.removeAttribute('class');
        });
        
    </script>
</body>
</html>

마우스를 올렸을 때 class="hover" 속성을 추가시키고 마우스가 나가면 class속성을 없애버립니다.

이벤트 리스너의 특징은 on을 안 붙힙니다 앞에 테이블로 적어뒀던 onclick, onMouseover 등에서 on을 뺍니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
</style>
<body>
    <form id ="frm">
        <fieldset>
            <legend>주소록</legend>
            <textarea name ="txt" id="txt2" cols ="30" rows="10">입력해주세요</textarea><br>
            <input type ="submit" id = "q" value ="불러오기">
        </fieldset>
    </form>

    <script>
        var address =["김철수","email: kcs@gmail.com"]; // 미리 값을 준비

        var q = document.getElementById('frm'); // from id값 받아온다.
        
        function addr_search(){
            var textarea = q.txt; // q의 name값을 가져옴 q.txt 여기서 txt는 name값

            textarea.value = '이름 / 주소 \n'; // .value란 해당 태그에 해당하는 글자를 의미 여기선 입력해주세요 이다.
            textarea.value += address[0] + ' , ' + address[1] + '\n'; // 준비한 값들을 넣는 과정
        }

        q.addEventListener('submit', function(){ // 버튼을 눌렀을 때 function()이하의 내용이 작동한다. 
            event.preventDefault(); // 폼 전송 기본 이벤트 발생 안 하도록 함
            addr_search(); // addr_search 메소드를 실행시킴
        })
        
    </script>
</body>
</html>

 

반응형
반응형
이벤트 속성명 설명
onclick 마우스로 클릭할 때
onmouseover(hover 1단계) 요소 안에 마우스가 들어갔을 때
onmouseover(hover 2단계) 요소에서 마우스가 벗어났을 때
onkeydown 키보드를 입력할 때
onkeyup 키를 눌렀다 놓을 때
onfocus , onblur 요소가 선택됐거나 해제됐을 때(블록지정?)
onsubmit 폼 전송 이벤트가 발생했을 때
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <a href ="www.naver.com" onclick="alert('구글로 이동합니다')">구글</a>
</body>
</html>

작은 따옴표 잘 구분해주세요 저는 다 큰 따옴표로 썼는데 이제 구분해서 써야겠습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script>
    window.onload = function(){
        var h1 = document.querySelector('h1');
        h1.innerHTML = '문서를 로딩했습니다.';
    }
</script>
<body>
    <h1>홈페이지에 오신 것을 환영합니다.</h1>
</body>
</html>

바로 바뀌는 것이 아닌 홈페이지에 엑세스 됐을 때 바뀝니다. 새로고침 연타해서 보시면 바뀌과정이 눈에 보입니다.

window.onload란 홈페이지가 떴을때 function을 실행시키는 것입니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script>
    window.onload = function(){
        var h1 = document.querySelector('h1');
        
        h1.onclick = function(){
            this.innerHTML = '문서를 로딩했습니다.';
        }
    }
</script>
<body>
    <h1>홈페이지에 오신 것을 환영합니다.</h1>
</body>
</html>

홈페이지가 준비가 완료되면 h1 css생성자를 가져오고 h1.onclick 을 사용할 수 있게 합니다.

 

this는 자기자신을 의미합니다. 여기선 h1을 의미하죠

 

 

// ──────────────────────────── 이벤트 바인딩 ────────────────────────────

// 우측 마우스 클릭시 이벤트 리스너
document.addEventListener('contextmenu', handleCreateContextMenu);

// 좌측 마우스 클릭시 이벤트 리스너
document.addEventListener('click', handleClearContextMenu);

// 드래그 했을 때 이벤트 리스너
document.addEventListener("drag", function (event) {
    console.log("이동 중");
}, false);

// 블럭지정 했을 때 이벤트 리스너
document.addEventListener('selectionchange', () => {
    console.log(document.getSelection().toString()); // 블럭지정 내용
});
반응형
반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        width:100px;
        height:100px;
        border:3px solid black;
    }
    .box{
        background-color: orange;
    }
</style>
<body>
    <div id = "box" onclick ="chnageColor()">Hello box</div>

    <script>
        function chnageColor(){
            var box = document.getElementById("box");
            box.setAttribute("class","box");
        }
    </script>
</body>
</html>

📝setAttribute

원래 div는 id값만 가지고 있지만 Id값을 받아와 class="box"라는 속성을 setAttribute로 추가시켰습니다.

 

그래서 background-color가 바뀌게 된 거죠

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        width:100px;
        height:100px;
        border:3px solid black;
    }
    .box{
        background-color: orange;
    }
</style>
<body>
    <div id = "box" onclick ="chnageColor()">Hello box</div>

    <script>
        function chnageColor(){
            var box = document.getElementById("box");
            box.setAttribute("class","box");

            var getAttr = box.getAttribute("class");
            alert(getAttr);
        }
    </script>
</body>
</html>

📝getAttribute

getAttribute는 속성에 해당하는 값을 가져옵니다 여기선 class="box"이니 box가 alert으로 경고창이 뜨는겁니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        width:100px;
        height:100px;
        border:3px solid black;
    }
    .box{
        background-color: orange;
    }
</style>
<body>
    <div id = "box" onclick ="chnageColor()">Hello box</div>
    <button onclick="removeColor()">버튼</button>
    <script>
        function chnageColor(){
            var box = document.getElementById("box");
            box.setAttribute("class","box");

            var getAttr = box.getAttribute("class");
            alert(getAttr);
        }

        function removeColor(){
            var box = document.getElementById("box");
            box.removeAttribute("class");
            
        }
    </script>
</body>
</html>

 

📝removeAttribute

버튼을 누르면 removeAttributeclass 속성을 없애서 .box에 적용된 내부스타일이 적용이 안 되게 되는 거입니다.

 

반응형
반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1 id ="title">
        여기를 변경해주세요
    </h1>

    <script>
        var title = document.getElementById("title");
        
        title.style.color = "white";
        title.style.background = "orange";
        title.innerHTML = "JavaScript로 문서를 조작";
    </script>
</body>
</html>

이런식으로 자바스크립트로 HTML 태그의 id값으로 접근해 조작할 수 있습니다.

 

📝document.getElementById

 

일단 태그에 id값을 주고 document.getElementById(id값)으로 접근할 수 있습니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>first</li>
        <li>second</li>
        <li>third</li>
    </ul>


    <script>
        var li = document.querySelector("li");

        li.style.color = "red";
        li.style.background = "blue";
    </script>
</body>
</html>

CSS 선택자를 사용해 접근할 수 있습니다.

 

📝document.querySelector

document.querySelector("CSS선택자")로 접근할 수 있습니다. 가장 편하지만 첫 번째 요소만 선택할 수 있습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>first</li>
        <li>second</li>
        <li>third</li>
    </ul>


    <script>
        var li = document.getElementsByTagName('li');
        li[1].style.backgroundColor = "red";
        li[1].style.color ="white";
    </script>
</body>
</html>

📝document.getELementsByTagName

document.getElementsByTagName으로 태그명으로 접근 가능합니다 이와 같은 경우 인덱스로 다른 요소에 접근이 가능합니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>first</li>
        <li>second</li>
        <li>third</li>
    </ul>

    <button onClick = "setColor()"> click</button>


    <script>
        function setColor(){
            var li = document.querySelectorAll("li");

            for(var i = 0; i < li.length ; i++){
                li[i].style.color = "green";
                li[i].style.backgroundColor ="orange";
            }
        }
    </script>
</body>
</html>

📝onClick, document.querySelectorAll

onClick 이란 클릭시 setColor()라는 메소드가 실행됩니다.

document.querySelectorAll(CSS선택자)선택자 각각 다 접근이 가능합니다.

그리고 배열로 잡히게됩니다. 각 인덱스를 for문으로 돌아서 적용시키는 문입니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li class="a">first</li>
        <li class="a">second</li>
        <li class="a">third</li>
    </ul>

    <button onClick = "setColor()"> click</button>


    <script>
        function setColor(){
            var li = document.getElementsByClassName("a");

            for(var i = 0; i < li.length ; i++){
                li[i].style.color = "green";
                li[i].style.backgroundColor ="orange";
            }
        }
    </script>
</body>
</html>

📝getElementsByClassName

위와 동일하지만 class이름으로 가져옵니다 getElementsByClassName을 이용해 같은 클래스 이름으로 배열로 가져옵니다.

반응형
반응형
  • 초기값 데이터 선언
let customer_name =["Lee","Kim","Park","Sung"];
let score =[90,55,40,100,10];

 

📝reverse, sort

console.log(customer_name.reverse()); //[ 'Sung', 'Park', 'Kim', 'Lee' ]

//매개변수를 주지않으면 문자열의 경우 알파벳순으로만 정렬한다.
console.log(customer_name.sort()); // [ 'Kim', 'Lee', 'Park', 'Sung' ]
console.log(score.sort());         // [ 10, 100, 40, 55, 90 ] => 내가 원치 않는 정렬

console.log(score.sort(function(a,b){return a - b;})); // 오름차순 [ 10, 40, 55, 90, 100 ]
console.log(score.sort(function(a,b){return b - a;})); // 내림차순 [ 100, 90, 55, 40, 10 ]

reverse의 경우 역순으로 정렬을 합니다

sort의 경우 숫자 및 문자열을 정렬해주는데 매개변수에 아무것도 입력 안 하면 알파벳 순으로 정렬하게 됩니다 그래서 숫자로 정렬을 하려면 익명함수를 사용해 a - b (오름차순) 또는 b - a (내림차순)을 리턴해줘야합니다

 

📝slice

console.log(customer_name.slice(1,3)); // [ 'Lee', 'Park' ] 1번 ~ 2번 인덱스까지

slice함수를 이용해 배열에서 원하는 요소를 뽑아서 배열을 만들 수 있습니다

 

📝concat

console.log(customer_name.concat("Lee")); // [ 'Kim', 'Lee', 'Park', 'Sung', 'Lee' ]
console.log(customer_name.concat(score)); // [ 'Kim',  'Lee', 'Park','Sung', 100, 90, 55, 40, 10 ]

concat이란 함수를 이용해 배열끼리 합칠 수 있습니다

 

 

📝shift , unshift, pop

customer_name.shift(); // Jung 맨 앞 인덱스 제거
console.log(customer_name); //  [ 'Lee', 'Park', 'Sung' ]

customer_name.unshift("jung"); // 맨 앞 인덱스에 추가
console.log(customer_name); // [ 'jung', 'Lee', 'Park', 'Sung' ]

customer_name.pop(); // 끝 인덱스 제거
console.log(customer_name); // [ 'jung', 'Lee', 'Park' ]

customer_name.push("Hello"); // 끝 인덱스 추가
console.log(customer_name); // [ 'jung', 'Kim', 'Park', 'Hello' ]
  • shift맨 앞 인덱스를 제거할 수 있습니다
  • unshift를 이용해 맨 앞 인덱스를 추가할 수 있습니다
  • pop을 이용해 끝에 있는 인덱스를 제거할 수 있습니다
  • push를 이용해 끝에 있는 인덱스를 추가할 수 있습니다

 

📝join

let A = customer_name.join(','); // 인덱스로 구분되어있는 배열을 :로 엮는 문자열로 만든다.
console.log(A); // Lee,Kim,Park,Sung

join 함수를 이용해 배열의 요소를 하나로 합쳐문자열로 만들 수 있습니다

반응형