Javascript 基于文档动态创建摘要
我找了很多,但什么也没找到 后端在一个页面中打印一个完整的文档,我需要根据标题(从h2到h6)创建一个摘要,比如MicrosoftOfficeWord 我将创建一个嵌套的有序列表,如下所示,但具有更多级别:Javascript 基于文档动态创建摘要,javascript,jquery,dom,Javascript,Jquery,Dom,我找了很多,但什么也没找到 后端在一个页面中打印一个完整的文档,我需要根据标题(从h2到h6)创建一个摘要,比如MicrosoftOfficeWord 我将创建一个嵌套的有序列表,如下所示,但具有更多级别: 1. Lorem Ipsum 1.1 Lorem ipsum 1.2 Lorem ipsum 2. Lorem ipsum 对不起,我没有代码,因为这是一个非常具体的事情,我不知道如何开始:p 你可以给我发个密码或想法 对不起,有英语错误 编辑: 为了更好地解释,java
1. Lorem Ipsum
1.1 Lorem ipsum
1.2 Lorem ipsum
2. Lorem ipsum
对不起,我没有代码,因为这是一个非常具体的事情,我不知道如何开始:p
你可以给我发个密码或想法
对不起,有英语错误
编辑:
为了更好地解释,javascript应该使用div.text呈现一个类似于小提琴的有序列表。更新:
为此使用jquery,例如:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>find demo</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<ol type="1">
<h1>Main Title</h1>
</ol>
<script>
$("h1").replaceWith( "<li>" + $("h1").text() + "</li>" );
</script>
</body>
</html>
查找演示
主标题
$(“h1”)。替换为(“”+$(“h1”).text()+” ”;
我们开始吧。继续,在下面或()尝试。向下滚动至“目录”
我们要做的是迭代所有的头(h1
,h2
,等等),并创建一个堆栈,如果我们遇到下一个级别的头(例如,如果我们在级别h2
,并且遇到h3
),则在其中添加(push
)元素。然而,当我们到达较低级别的头时,我们从堆栈中移除元素(pop
),直到到达顶层(例如,如果我们在h5
级别,下一个是h2
,我们将pop
四个元素:h5
,h4
,h3
和h2
)
请注意,我只是稍微更新了一下HTML,并在标题区域周围创建了一个div#content
$(函数(){
“严格使用”;
var$content=$('#content'),//我们应该在哪里查找标题。
toc=document.createElement('ol'),//主“目录”元素。
listStack=[];
//首先查找所有标题。
$content.children('h1,h2,h3,h4,h5,h6')。每个(函数(索引,el){
var currentHeader=el,
currentLevel=Number(currentHeader.tagName.substr(1)),//获取此标头的级别。
lastListItem=listStack[listStack.length-1],
lastListItemLevel=lastListItem?lastListItem.level:0,//获取上一个标头的级别。
吴,李,;
//确保新收割台位于更高级别。
//当我们没有到达第一个最近的父标题(较高级别)时弹出。
虽然(currentLevel它是什么类型的文档?HTML?PDF?你能给我们一个HTML的示例吗?基于该HTML,你想要什么精确的输出?是什么触发了
或子
的创建?上面带有标题的HTML应该打印该列表。我想你没有得到,我需要创建一个基于在标题标签上,然后添加到嵌套的有序列表中,按照正确的顺序,h2将是h1的子对象,h3将是h2的子对象。我无法隐藏文本。我刚刚更新了答案,您可以使用一些jquery函数,如replaceWith或append来修改输出