테스트 사이트 - 개발 중인 베타 버전입니다

제이쿼리 for문 안에서 라디오 클릭 이벤트 문의입니다. 채택완료

Dessi 5년 전 조회 1,965

</p>

<p><?php for($i=1;$i<=10;$i++) {?>

    <div>

        <input type="radio" id="test<?php echo $i ?>_1" name="test<?php echo $i ?>" value="1"> 1

        <input type="radio" id="test<?php echo $i ?>_2" name="test<?php echo $i ?>" value="2"> 2

    </div></p>

<p>    <div id="show<?php echo $i ?>" style="display:none">

        테스트1

    </div>

<?php } ?></p>

<p>

 

html은 이런식으로 있습니다.

 

for문을 돌려서 라디오 id, name 과 다음 id show 부분뒤의 숫자는 같이 증가하게 구현은 잘 되었습니다.

(for i 값이 10이면 라디오 10과 show 10까지 잘 나옵니다.)

 

그런데 여기서 제이쿼리로 라디오 test$i 의 value 1을 클릭하였을때 show$i를 보여주게 할려고 하는데 제이쿼리는 for문 안에서 클릭 이벤트가 발동을 하지가 않네요.

(라디오 test1의 value 1을 클릭하면 show1이 보여지고 test7의 value 1을 클릭하면 show7이 보여지는식) 

 

for문 밖으로 꺼내서 수동으로 10개까지 넣으면 잘 됩니다.

 

제이쿼리 코드는 아래와 같습니다. 원래 제이쿼리 for문 안에서 할려면 다른 방법이 있을까요?

 

</p>

<p><script></p>

<p>for (var i=1; i<=10;i++){ 

    $("input:radio[name=test"+i+"]").click(function(){            

        if($("input:radio[name=test"+i+"]:checked").val()=='1'){

            $("#show"+i+"").show();

        }else{

           $("#show"+i+"").hide();                 

        }

    });

}</p>

<p></script></p>

<p>

 

 

 

 

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

답변 1개

채택된 답변
+20 포인트

</p>

<p>$("input[name^='test']").on("click", function() {

    var n = $(this).attr("name").replace("test", "");

    var flag = $(this).val() == 1 ? "block" : "none";

    $("#show" + n).css("display", flag);

});</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

D
Dessi
5년 전
감사합니다! 잘됩니다!

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

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

로그인