记录利用js获取富文本目录

需求:根据富文本文章内容获取标题生成目录

<div id="content">
    <h1>标题1</h1>
    <p>段落1</p>
    <h2>标题2</h2>
    <p>段落2</p>
    <h3>标题3</h3>
    <p>段落3</p>
</div>
<div class="toc"></div>
<script>

 $(function() { // 获取所有的 h 标签

 var  headings = $('#content').find('h1,h2,h3,h4,h5,h6');

 if (headings.length) {

 var  tocHtml = '<ul>'; // 遍历所有获取到的 h 标签

 headings.each(function(i, heading) {

 var  id = $(heading).attr('id') || ('heading-' + i);

 $(heading).attr('id', id); // 子目录缩进

 var  indent = new  Array(parseInt(heading.tagName.substring(1)) - 1).join('&nbsp;&nbsp;');

 tocHtml += '<li>' + indent + '< a href="#' + id + '">' + $(heading).text() + '</ a></li>';

            });

 tocHtml += '</ul>';

 $('.toc').html(tocHtml); // 点击目录跳转至对应位置

 $('.toc a').click(function(e) {

 e.preventDefault();

 var  target = $($(this).attr('href'));

 $('html,body').animate({

 scrollTop:  target.offset().top

}, 500);

            });

        }

    });

</script>

科技改变生活:laughing:,后端仔网上找了几个方案不太合适,要不是得服务端做正则,要不是缺少递归,直接chatgpt把我问题解决了

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!