Javascript 从内部为某些元素上的循环重新编号

Javascript 从内部为某些元素上的循环重新编号,javascript,node.js,arrays,loops,for-loop,Javascript,Node.js,Arrays,Loops,For Loop,我有一个插件,可以从用户设置的自定义起始编号中为标题标签编号 它创建如下标题: 1。标题一级 1.1. 标题二级 1.1.1. 标题三级 如果用户手动设置起始编号: 20。标题一级 20.3. 标题二级 20.3.6. 标题三级 但是,当循环重复时,编号不会重置为1,我似乎无法解决如何触发该循环: 20。标题一级 20.3. 标题二级 20.3.6. 标题三级 20标题一级 20.4. 标题二级 20.4.6. 标题级别三您可以创建一个数组来跟踪每个标题级别的第一次运行。如果不是第一次运行,

我有一个插件,可以从用户设置的自定义起始编号中为标题标签编号

它创建如下标题:

1。标题一级
1.1. 标题二级
1.1.1. 标题三级
如果用户手动设置起始编号:

20。标题一级
20.3. 标题二级
20.3.6. 标题三级
但是,当循环重复时,编号不会重置为
1
,我似乎无法解决如何触发该循环:

20。标题一级
20.3. 标题二级
20.3.6. 标题三级
20标题一级
20.4. 标题二级

20.4.6. 标题级别三您可以创建一个数组来跟踪每个标题级别的第一次运行。如果不是第一次运行,则重置以下所有级别

const header=[10,20,30,40,50,60],
contentHeaders=document.querySelectorAll(
‘h1、h2、h3、h4、h5、h6’
),
起始编号=[0,//空
头[0]-1,//h1
头[1]-1,//h2
头[2]-1,//h3
头[3]-1,//h4
标题[4]-1,//h5
头[5]-1,//h6
];
//追踪第一次跑步
让first_run=[真的,真的,真的,真的,真的,真的,真的];
for(contentHeaders中的var项){
//此元素来自项目编号
var元素=contentHeaders[项目],
numberText='';
//限制搜索中的标题标签号
const headingRegex=new RegExp(“^H([1-6])$”);
//元素是否与标题正则表达式匹配
如果(!element | | |!element.tagName | |!element.tagName.match(headingRegex)){
//返回到循环的开始
继续;
}
//返回标题级别编号
var elementLevel=RegExp.$1;
//增加1
起始编号[elementLevel]++;
//除第一次运行外,重置以下所有级别
如果(!first_run[elementLevel])重置到以下级别(elementLevel);
第一次运行[elementLevel]=错误;
//循环浏览标题

for(var levelNumber=1;levelNumber格式良好,评论良好。难得一见。希望你能得到你的答案!感谢@adiga-在测试、研究和探索之后,我已经问了这么久了