【发布时间】:2021-11-15 15:01:51
【问题描述】:
我希望在下面的标题中添加数字。问题是有些文档可能无限嵌套,需要独立统计。在原始文档中,标题仅为文本,没有编号前缀。
<div id="text_output">
<h1>Document 1</h1>
<h2>1 Heading</h2>
<h3>1.1 Subheading</h3>
<h3>1.2 Subheading</h3>
<div class="text_output_expansion">
<h1>Document 2</h1>
<h2>1 Heading</h2>
<h3>1.1 Subheading</h3>
<h2>2 Heading</h2>
<h3>2.1 Subheading</h3>
</div>
<h3>1.3 Subheading</h3>
<h2>2 Heading</h2>
<h3>2.1 Subheading</h3>
<h3>2.2 Subheading</h3>
<div class="text_output_expansion">
<h1>Document 3</h1>
<h2>1 Heading</h2>
<h3>1.1 Subheading</h3>
<h2>2 Heading</h2>
<h3>2.1 Subheading</h3>
<div class="text_output_expansion">
<h1>Document 4</h1>
<h2>1 Heading</h2>
<h3>1.1 Subheading</h3>
<h2>2 Heading</h2>
<h3>2.1 Subheading</h3>
</div>
<h3>2.2 Subheading</h3>
</div>
<h3>2.3 Subheading</h3>
<h2>3 Heading</h2>
<h3>3.1 Subheading</h3>
<h3>3.2 Subheading</h3>
</div>
我将发布一个 CSS 解决方案,但我只是在努力让它在 javascript 中工作。这个想法是这样我就可以复制和粘贴带有完整数字的文档(CSS 解决方案不允许这样做)。诚然,我的 javascript 不是很好,但我的挣扎似乎是 js 如何从上到下循环遍历元素。
【问题讨论】:
-
您的意见是什么? DOM 节点? HTML 文本?那么输出呢?你能分享一些你自己在这方面的尝试吗?
-
您的缩进意味着文档中不存在嵌套。是否有可能改变结构,例如,第二个
H3嵌套在下面的DIV中,或者一些通用元素将它们都包裹起来? -
不幸的是结构被锁定,我正在使用别人的数据,我认为这些数据来自 Markdown 文件。
-
那么你能改变你对输出的期望吗?在我看来,真正的问题是 1.3 副标题在视觉上看起来好像嵌套在
Document 2 > 2 Heading 2下,紧跟在2.1 Subheading之后并处于同一水平。这将是非常令人困惑的。将嵌套标题更改为属于其父层次结构怎么样?也就是说,第一个text_output_expansion下的标题可能会变成H4、H5、H6、H5、H6,然后看起来它们是正确嵌套的。问题是当你点击H8时,我想你会的,但必须付出一些代价。
标签: javascript html jquery css recursion