Notice
Recent Posts
Recent Comments
Link
Tags
more
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

JongDDA의 한걸음 한걸음씩

[JavaScript & Jquery] 제이쿼리 폼 & 객체 편집 메소드 본문

개발/프론트엔드

[JavaScript & Jquery] 제이쿼리 폼 & 객체 편집 메소드

종따 2021. 4. 8. 14:50
728x90

change() : 오직 변경 이벤트에 대해서만 이벤트 핸들링!

val() : 입력 요소 값 조회 또는 변경

 

자바스크립트 배열의 메소드인 join(인자)

: 배열 요소 사이사이에 인자를 추가한 형태의 문자열을 반환

 

<!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">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>제이쿼리</title>
    <style>
    </style>
</head>
<body>
    <h1>입력 요소에서 값 읽어보기</h1>
    <p class="result">미입력 상태</p>
    <select id="single">
        <option>강아지</option>
        <option>고양이</option>
    </select>
    <select id ="multiple" multiple>
        <option>김밥</option>
        <option>초밥</option>
        <option>쌈밥</option>
    </select>

    <p class="text-result"></p>
    <script src="03_script.js"></script>
</body>
</html>
function displayValues(){

    const singleValue = $("#single").val()
    const multiValue = $("#multiple").val() // 배열 반환

    console.log(singleValue)
    console.log(multiValue)

    //  두 셀렉트의 결과를 하나의 문자열로 보여주자
    const resultText = `<strong>싱글 셀렉터 값 : </strong>${singleValue}<br>
    <strong>멀티 셀렉터 값: </strong>${multiValue.join(',')}`  
    $(".result").html(resultText)
}
$(document).ready(function(){
    $("select").change(displayValues)
})

이벤트객체.preventDefault() : 원래 처리되는 것을 차단한다!

사용자가 정의한 기능을 대신 사용하고 싶을 때 주로 사용한다. 

<!DOCTYPE html>
<html>
<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">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>제이쿼리</title>
    <style>
    </style>
</head>
<body>
<h1>텍스트 입력하기</h1>
<form>
    <input type="text" placeholder="아무거나 쓰세요">
    <input type="submit" value="다 썼어요">
</form>
    <p class="text-result"></p>
    <script src="03_script.js"></script>
</body>
</html>
$(document).ready(function(){
    // 이벤트 객체가 전달된다!
    $("form").on("submit",function(e){
        e.preventDefault();
        const value = $(this).children()[0].value
        // this = form, children => input, 자식이 둘이기 때문에 인덱싱을 해준다.
        $(".text-result").text(value)
    })
})

 

객체 편집 메소드

선택한 요소를 복제하거나 새 요소를 생성하는 메소드들과, 복제하거나 새로 생성한 요소를 의도한 위치에 삽입하고 선택한 요소를 삭제하는 기능을 통틀어 객체 편집 메소드라 한다.

before() / afrer() :

선택한 요소의 앞이나 뒤에다가 요소 추가하기 (형제 추가)

 

<!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">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>Document</title>
</head>
<body>
    <script src="04_script.js"></script>

    <h1>축구선수들</h1>
    <ul>
        <li>안드레아 피를로</li>
        <li>호나우지뉴</li>
        <li>안정환</li>
    </ul>
</body>
</html>
$(document).ready(function(){

    const li = document.createElement("li")
    // 제이쿼리로 요소 생성하기 (요소를 써주기만 하면 됨)
    const li2 = $("<li>박지성</li>")
    $(li).text("리오넬 메시")
    $($("li")[1]).after(li)
    $($("li")[1]).before(li2)
})

prepend() / append() :

선택한 요소의 자식을 추가하는데, 첫째를 추가하냐 막내를 추가하냐.

 

$(document).ready(function(){

    const li = document.createElement("li")
    // 제이쿼리로 요소 생성하기 (요소를 써주기만 하면 됨)
    const li2 = $("<li>박지성</li>")
    $(li).text("리오넬 메시")
    $($("li")[1]).after(li)
    $($("li")[1]).before(li2)


    const li3 = $("<li>프란체스코 도티</li>")
    const li4 = $("<li>디에고 마라도나</li>")

    $("#player").prepend(li3)
    $("#player").append(li4)

})

empty() / remove() :

둘 다 삭제인데, 내부를 비우냐, 자기 자신까지 없애냐.

<!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">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>Document</title>
</head>
<body>
    <script src="04_script.js"></script>

    <h1>축구선수들</h1>
    <ul id="player">
        <li>안드레아 피를로</li>
        <li>호나우지뉴</li>
        <li>안정환</li>
    </ul>
    <button id="empty">empty 호출</button>
    <button id ="remove">remove 호출</button>
    
</body>
</html>
$(document).ready(function(){

    const li = document.createElement("li")
    // 제이쿼리로 요소 생성하기 (요소를 써주기만 하면 됨)
    const li2 = $("<li>박지성</li>")
    $(li).text("리오넬 메시")
    $($("li")[1]).after(li)
    $($("li")[1]).before(li2)
    
    const li3 = $("<li>프란체스코 도티</li>")
    const li4 = $("<li>디에고 마라도나</li>")

    $("#player").prepend(li3)
    $("#player").append(li4)

    // 클릭 이벤트 핸들링
    $("#empty").on("click",function(){
        $("#player").empty()
    })
    $("#remove").on("click",function(){
        $("#player").remove()
    })
})

728x90
반응형
Comments