0

这是我的代码:

   <script type="text/javascript">
    $(document).ready(function(){
        $('.toAdd').hide();
        $('#add').click(function () {
            var i = 0;
            $('.toAdd').each(function () {
                if ($(this).show()) {
                    i++;
                }
            });
        });
    });
    </script>

    <div id=add><input type="button" value="click"/>
    </div>
    <div id="toAdd">
    <label>1</label>
    </div>
    <div id="toAdd">
    <label>2</label>
    </div>
    <div id="toAdd">
    <label>3</label>
    </div>
    <div id="toAdd">
    <label>4</label>
    </div>

在这段代码中,我需要为每个点击事件一个一个地显示 div,但它不起作用?

4

5 回答 5

6

ID必须是唯一的,请改用

$('.toAdd').hide();

var count = 0;
$('input').on('click',function(){
    $('.toAdd:eq('+count+')').show();
    count++;
});

JSFiddle

于 2013-09-02T08:03:07.883 回答
2

在您的 div 中将 id="toAdd" 更改为 class="toAdd"

于 2013-09-02T07:59:54.203 回答
2

正如其他人所说,您需要更改id="toAdd"为`class="toAdd"。

然后,您可以显示第一个未隐藏的 DIV:

    $('#add input').click(function () {
        $('.toAdd:hidden:first').show();
    });

小提琴

于 2013-09-02T08:06:25.840 回答
0

将 id 更改为 class,就像其他人所说的那样,如果您需要循环显示/隐藏。那么这可能会派上用场

 $('.toAdd').hide();
 var i = 0;
 $('#add input').click(function () {
     i=(i >= 4)?0:i;
      //or if(i >= 4){ i=0;}
     $('.toAdd').eq(i).show().siblings().not(':first').hide();
     i++;

 });

在这里摆弄

于 2013-09-02T08:11:43.757 回答
0

代替<div id="toAdd"> with <div class="toAdd">

并这样做

  $('.toAdd').each(function () {
                if (!$(this.is(":visible"))) {
                   $(this).show();
                   break;
                }
            });
于 2013-09-02T08:02:27.557 回答