我有一个HTML格式的常见问题解答(example),其中的问题相互引用很多。这意味着无论何时插入/删除/重新排列问题,编号都会发生变化。 LaTeX使用\ label和\ ref非常优雅地解决了这个问题 - 你给项目简单的标签和LaTeX担心在最终文档中转换为数字。
人们如何在HTML中处理这个问题?
ADDED:请注意,如果您不必按编号实际引用项目,则不会有问题,在这种情况下,您可以使用
设置标记 <a name="foo">
然后用
链接到它 <a href="#foo">some non-numerical way to refer to foo</a>
。
但我假设“foo”有一些自动生成的数字,比如来自<ol>
列表,我想用这个数字来引用并链接到它。
答案 0 :(得分:6)
HTML中没有这样的内容。
通常解决这个问题的方法是,通过解析HTML本身并插入TOC(在将HTML发送到浏览器之前,可以在服务器上执行此操作)生成链接的HTML,或者在客户端上,通过使用一小段ECMAScript遍历DOM并简单地收集和检查所有<a>
元素)或从更高级别的源生成整个HTML文档,如数据库,XML文档,降价或 - 为什么不? - 甚至是ΕΧ。
答案 1 :(得分:2)
我知道浏览器并没有广泛支持它,但您可以使用CSS计数器来完成此操作。
另外,请考虑使用id
而不是name
作为您的主播。
答案 2 :(得分:1)
而不是\ label {key}使用&lt; a name =“key”/&gt;。然后使用&lt; a href =“#key”&gt;链接&lt; / a&gt;进行链接。
答案 3 :(得分:1)
PrinceXML可以做到这一点,但就是这样。我想最好使用服务器端脚本。
答案 4 :(得分:0)
以下是我最终用PHP脚本解决这个问题的方法:
它与LaTeX中的\ label和\ ref大致相同,甚至可以自动生成问题索引。 我把它放在一个以太网实例上,当多人向FAQ提问时,这个实例很方便。