javascript - JQuery - 删除html元素时格式化数字顺序

标签 javascript jquery html css

我目前正在尝试获得一个基本但功能正常的地方,我说有 5 行,每行都有自己的编号。

所以我有 5 行 .......5,4,3,2,1 <--- 如果我删除 say 3 它应该看起来像 4,3,2,1 所以有效地反射(reflect)我现在只有 4 个,而不是 5 个......如果我删除另一个值,它将变为 3,2,1 等等。

我已经有点接近了,但还不能让它发挥作用。

这是 JSfiddle

jQuery(function($) {
  var countercontact = 0;
  var counternum = 0;
  $("#addcontact").on('click', function() {
    countercontact++;
    $("#contact_num").append('<div class="row"><div class="form-group col-xs-1 contactspan"><span class="countercontact">' + countercontact + '.</span></div><div class="form-group col-xs-3"><input type="text" class="form-control" id="pass" placeholder="No number"></div><div class="form-group col-xs-2"><select class="form-control" id="delay"><option>5</option><option>10</option><option>20</option><option>30</option><option>40</option><option>50</option><option>60</option></select></div><div class="form-group col-xs-2">\<input type="checkbox" class="form-control" id="confirm"></div><div class="form-group col-xs-2"><input type="checkbox" class="form-control" id="enable"></div><div class="form-group col-xs-2"><button type="submit" class="btn btn-primary form-control deletecontact">Delete</button></div></div>');
    if (countercontact === 1) {
      $(".deletecontact").addClass('disabled');
    } else {
      $(".deletecontact").removeClass('disabled');
    }
  });

  $("#contact_num").on("click", ".deletecontact", function() {
    if (countercontact <= 1) {
      $(".deletecontact").addClass('disabled');
    } else {
      $(".deletecontact").removeClass('disabled');
      $(this).closest('.row').remove();
      countercontact--;
      $(".contactspan").each(function(index) {
        var ordernum = $(this).text();
        console.log(ordernum);
        if (ordernum !== 1) {
          $(this).text(parseInt($(this).text()) - 1);
        }
      });
    }
  });
});
.container {
  width: 75%;
}
.row {
  margin-bottom: 12px;
  font-size: 13px;
}
.panel {
  border: none;
  box-shadow: none;
}
.panel-heading {
  background-color: #D9DBDE;
  padding: 20px;
  margin-bottom: 10px;
  border-radius: 0;
}
.panel-heading.head {
  padding: 20px 0;
  background-color: #E1F2F9;
}
.panel-body {
  padding: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<div class="panel panel-default">
  <div class="panel-body row">
    <div class="form-group" id="contact_num">
      <div class="row">
        <div class="form-group col-md-1">
          <label for="pass"></label>
        </div>
        <div class="form-group col-md-3">
          <label for="pass">Contact No(s)</label>
        </div>
        <div class="form-group col-md-2">
          <label for="delay">Delay</label>
        </div>
        <div class="form-group col-md-2">
          <label for="confirm">Confirm</label>
        </div>
        <div class="form-group col-md-2">
          <label for="enable">Enable</label>
        </div>
        <div class="form-group col-md-2">
          <label for="delete"></label>
        </div>
      </div>
    </div>
    <button type="submit" class="btn btn-primary" id="addcontact" style="margin-bottom: 10px;">Add</button>
  </div>
</div>

最佳答案

您可以编写一个函数来更正数字并在需要时运行,例如在删除元素后。

function correctIndex(){
    $('#contact_num .row').each(function(){
          $(this).find('.contactspan').html($(this).index()+1);
    });
}

或者您只是更改这部分代码:

    $(".contactspan").each(function(index) {
        var ordernum = $(this).text();
        console.log(ordernum);
        if (ordernum !== 1) {
          $(this).text(parseInt($(this).text()) - 1);
        }
 });

到:

$(".contactspan").each(function(){
      $(this).html($(this).closest('.row').index() + '.')
});

Here is updated fiddle

关于javascript - JQuery - 删除html元素时格式化数字顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38608337/

相关文章:

javascript - 如何在字符串中切点?

javascript - POST <选项>文本而不是值

javascript - 如何在 jQuery 中选择并获取非空文本区域字段的值?

javascript - 创建交互式非矩形 HTML 元素的最佳方式

html - Select2选项不可见

javascript - Qt5 和 QML : How to automatically input username and password using WebEngine Quick Nano Browser

javascript - JQuery - 循环遍历具有相同类的 DIV 并为每个 DIV 创建数组

jQuery 根据类重新排序列表项

javascript - 如何使用完整的 page.js 滚动到带有链接的特定部分?

html - 如何正确渲染和动画 svg 图标?