js判断相同cls值有关问题

js判断相同cls值问题
假如我有个按钮,每点击下生成一个div,其中每个div中cls值需要不一样,如

<div class="cls_1"></div>
<div class="cls_2"></div>
<div class="cls_3"></div>
<div class="cls_4"></div>

假如还有一个按钮是跟随在那些div后边的删除已添加的this div,假如我删除了cls_2和cls_3的div
那么代码变为

<div class="cls_1"></div>
<div class="cls_4"></div>

我再点生成div的按钮,那么我需要判断假如已经存在cls_1的div,那么我要跳过,从cls_2开始,生成cls_2跟cls_3的div,右边又遇到cls_4再跳过,生成cls_5,就这样子按照顺序排列,怎么实现呢,最好是jq实现,谢谢
------解决方案--------------------

$(function(){ 
   var i = 1;
   var div;
   $("#addDiv").click(function(){
      for(; ; i++){
          if($(".cls_"+i).length == 0){
             div=$('<div></div>');
             div.addClass('cls_' + i);
             $(document.body).append(adddiv);
             break;
         }
       }
   });
}); 

------解决方案--------------------
<div class="cls_1"></div>
<div class="cls_2"></div>
<div class="cls_4"></div>
 
 
    for(var i=1; $(".cls_"+i).length>0; i++);
    $("body").append("<div class='cls_"+i+"'></div>");

------解决方案--------------------

$(function(){
      $('#add').click(function(){
               var arr = $('div[class!="cls_"]');
                if(arr.length > 0){
                       var obj = getObj(arr.length);
                       var num = obj.attr('class').split('_')[1] * 1 +1;
                       obj.after('<div class="cls_" '+num+' ">cls_'+num+'<button onclick="$(this).parent().remove();">remove</button></div>');
                }else{
                        $('body').append('<div class="cls_1 ">cls_1<button onclick="$(this).parent().remove();">remove</button></div>');
                }
       })
       function getObj(len){
               var query = $('div[class^="cls_"]');
               if(len > 1){
                    var o,arr;
                    for(var i = 0 ; i < query.length ; i ++){
                            o = $(query[i]);
                            if((i+1)  != o.attr('class').split('_')[1]){
                                    o = o.prev();
                                    break;
                            }
                    }
                    return o;
               }else{
                    return $(query[0]);