如何检查它是否是最后一个元素

时间:2016-11-15 15:58:45

标签: javascript jquery

如何检查它是否是最后一个div?如果是,我需要删除所有类“准备好”

HTML:

<div class="green"></div>
<div class="orange"></div>
<div class="red"></div>
<div class="green"></div>
<div class="orange"></div>

JS:

$(function() {
    setInterval(showBlock, 1000);
    function showBlock() {
        var x = $("div:first").addClass("ready");
        var c = $("div");
        $(".ready").css("display", "block");
        if (c.hasClass("ready")) {
            $(".ready:last").next().addClass("ready");
        }
    }
})

2 个答案:

答案 0 :(得分:2)

查看您的代码我理解的是您希望每秒后显示一个div。为此,我建议采用以下方法。 首先将hidden类添加到所有div,然后在每秒{@ 1}}将其删除。

hidden div
$(function() {
  $('div').addClass('hidden');
  var i = setInterval(showBlock, 1000);
  function showBlock() {
    var x = $("div.hidden:first").removeClass("hidden");
    if($("div.hidden").length == 0) {
      clearInterval(i);
    }
  }
});
.hidden {
  display: none;
}

答案 1 :(得分:1)

据我了解您的问题,以下解决方案必须适用于您的情况:

&#13;
&#13;
$(function() {
  setInterval(showBlock, 1000);
  function showBlock() {
    var ready_divs = $("div.ready").length;
    var total_divs = $("div").length;
    if(ready_divs!=total_divs){
      if(ready_divs==0){
        $("div:first").addClass('ready');
      }else{
        $("div.ready:last").next('div').addClass('ready');
      }
    }else{
      $("div").removeClass('ready')
    }
  }
});
&#13;
div{
    width: 20px;
    height: 20px;
    border:1px solid red;
}
div.ready{
    border:3px solid blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="green"></div>
<div class="orange"></div>
<div class="red"></div>
<div class="green"></div>
<div class="orange"></div>
&#13;
&#13;
&#13;