我正在使用以下代码从H4元素中创建一个有序列表:

$(function() {
    $(".numbered > h4").each(function(i, n) {
      $(this).prepend("<span>" + (i+1) + ". " + "</span> ");
    });
  });


这很好用,但我想为每个容器(.numbered)重置计数。例如,我有一个包含四个h4的容器div,此代码将在该数字之前,但不会为每个div重置。因此,页面上的第二个div将从5开始计数,而不是1。1是期望的结果。

最佳答案

如果希望每个i重新开始numbered,请分解查找,以便每个执行两次。

$(function() {
    $(".numbered").each(function(_, numbered){
        $('> h4', numbered).each(function(i) {
            $(this).prepend("<span>" + (i+1) + ". " + "</span> ");
        });
    });
});

10-08 17:15