是否有可能通过html创建一个目录以进行响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有可能通过html创建一个目录以进行响应相关的知识,希望对你有一定的参考价值。

我有一个文档,想创建一个目录

<h1>heading 1</h1>
<section>content</section>
<h2>heading 2</h2>
<section>content</section>
<h2>heading 2</h2>
<section>content</section>
<h3>heading 3</h2>
<section>content</section>
<h2>heading 2</h2>

因此,所有h2和h3都应嵌套在h1中,而所有h3都应嵌套在h2中。我可以在使用DOM节点的javascript中执行此操作,但由于它会阻止dom操纵,因此无法做出反应。

答案
在React中,您应该创建对该节点的引用并调用nodeRef.current.querySelectorAll("h2,h3,h4,h5,h6")以检索该节点中的标题。这将是获取所需数据的React方法。您无需操纵DOM,而只是获取包含的节点。如果您使用的是钩子兼容版本的react,建议将useRef作为引用容器节点的最简单方法。

一旦有了,就可以为节点数据创建树,如果要在目录的嵌套unordered list中显示它,则这是必要的。

我为此专门创建了一个钩子。您可以check out the source for ideas或使用npm package

此挂钩仅生成目录所需的数据,但是自述文件具有如何呈现它的simple example using recursionHere's the live example on github pages

生成树的算法不够简单,不足以产生堆栈溢出响应。如果您找到更简单的方法,请告诉我!

另一答案
import renderToStaticMarkup from 'react-dom/server'; import ReacthtmlParser from 'react-html-parser'; const regex = new RegExp(`(?<=<h\\d>)(.*?)(?=<)`,'g')

以上是关于是否有可能通过html创建一个目录以进行响应的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能找出用于创建移动应用程序的技术?

判断窗体是否无响应(监控窗体)

安装ko文件显示nfs未响应

Git分支是否可能与主分支存在于同一服务器上?

是否有可能创建一个像limesurvey这样的调查网站?

在我的网站的一部分上伪造移动环境以预览响应版本?