【发布时间】:2009-01-30 21:58:00
【问题描述】:
我一直在思考这个问题,但无法提出可行的解决方案。我什至无法对其进行伪编码...
例如,假设您有一个标题结构如下的页面:
<h1>Heading level 1</h1>
<h2>Sub heading #1</h2>
<h2>Sub heading #2</h2>
<h3>Sub Sub heading</h3>
<h2>Sub heading #3</h2>
<h3>Sub Sub heading #1</h3>
<h3>Sub Sub heading #2</h3>
<h4>Sub Sub Sub heading</h4>
<h2>Sub heading #4</h2>
<h3>Sub Sub heading</h3>
使用 JavaScript(任何框架都可以),您将如何生成这样的列表:(使用嵌套列表)
<ol>
<li>Heading level 1
<ol>
<li>Sub heading #1</li>
<li>Sub heading #2
<ol>
<li>Sub Sub heading</li>
</ol>
</li>
<li>Sub heading #3
<ol>
<li>Sub Sub heading #1</li>
<li>Sub Sub heading #2
<ol>
<li>Sub Sub Sub heading (h4)</li>
</ol>
</li>
</ol>
</li>
<li>Sub heading #4
<ol>
<li>Sub Sub heading</li>
</ol>
</li>
</ol>
</li>
</ol>
每次我尝试从某种方法开始时,它都会变得非常臃肿。
解决方案需要遍历每个标题并将其放入相应的嵌套列表中——我不断对自己重复这一点,但我无法勾勒出任何东西!
即使您脑子里有一套方法,但没有时间编写代码,我仍然想知道它! :)
谢谢!
【问题讨论】:
-
@JimmyP:标题之间有内容吗?该内容是否需要存在于最终结构中?
-
老话题,但是在jQuery(1.10.2)的当前实现中,
$('h1, ... , h6')会按照标签在页面上出现的顺序返回。
标签: javascript html methodology