채택완료

셀렉트에 따라 div에 class명 전달시키기

2019-02-01 (금) 09:49:50 3,310

<select name="shot" id="shot"></select> 

위와 같이 셀렉트값 변경시, 선택된 값이

아래와 같이 'box' 면

Copy
<script>

$(document).ready(function (){

$("#shot").change(function(){
    if( $(this).val() == 'box' ) {
        $(".box").show(); 
    }
    else{
        $(".box").hide();

    } 
})

$("#shot").trigger( 'change' );

});

</script>

클래스명이 .box인 div를 보이거나 안보이게 하는데요... 

Copy
<div class="box"></div>

<div class="stick"></div>

<div class="pencil"></div>

<div class="letter"></div>

<div class="bowl"></div>

...

box말고 stick,pencil,letter,bowl... 수백개가 있는 경우 

선택된 셀렉트값이 자동으로 div 클래스명에 적용되게하는 방법이 없을까요?

도움 부탁드립니다.

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2019-02-01 (금) 11:37:11
Copy
<style>
#wrap div { display:none; }
</style>
<script src="http://code.jquery.com/jquery-2.2.4.js"></script>
<script>
$(function() {
    $("#shot").on("change", function() {
        $("#wrap div").hide();
        $("." + $(this).val()).show();
    });
});
</script>
<select name="shot" id="shot">
    <option value="">선택</option>
    <option value="box">box</option>
    <option value="stick">stick</option>
</select>
<div id="wrap">
    <div class="box">box</div>
    <div class="stick">stick</div>
    <div class="pencil">pencil</div>
    <div class="letter">letter</div>
    <div class="bowl">bowl</div>
</div>

정확히 어떤 걸 원하시는지 몰라서 처음엔 전부 감춰져 있다가 #shot에서 선택한 값의 class만 보이게 했습니다.

답변에 대한 댓글 1개

2019-02-01 (금) 14:04:47
감사합니다^^

답변을 작성하려면 로그인이 필요합니다.