用jquery实现文章自动生成二级目录
前段时间有个同学问有没有办法在博客园上发一篇文章然后自动生成文章的目录。之前不知道该怎么做这几天看了些jquery之后觉得还是容易的。
一级目录
一级目录的思路很简单,找出作为一级标题的元素,在某个地方将text列出,再加上链接就好。
target = $("#contents");
$(document).ready(function() {
GenerateContents();
});
function GenerateContents() {
var num = 0;
var target = $("#contents");
var content = "目录";
content += "<ul>";
$("h2").each(function(){
content += "<li>" + GenerateA(num,$(this).text()) + "</li>";
$(this).before(GenerateLabel(num));
num++;
});
target.append(content);
}
//这两个函数本来想的是以后改着方便
function GenerateLabel(num){
var a = "<a name = 'label" + num + "'></a>";
return a;
}
function GenerateA(num ,text){
var ss = "<a href='" + "#label"
+ num +"'>" + text
+ "</a>";
return ss;
}
二级目录
二级目录就是再找出两个h2之间的h3就好,我这里用h2,h3作为一、二级标题。
target = $("#contents");
$(document).ready(function() {
GenerateContents2();
});
function GenerateContents2() {
var num = 0;
var target = $("#contents");
var content = "目录";
content += "<ul>";
$("h2").each(function(){
content += "<li>"+GenerateA(num,$(this).text());
$(this).before(GenerateLabel(num));
num++;
var second = $(this).nextUntil("h2","h3");
if (second) {
content += "<ul>";
second.each(function(){
content += "<li>"+GenerateA
(num,$(this).text())+"</li>";
$(this).before(GenerateLabel(num));
num++;
}
);
content += "</ul>";
};
content += "</li>";
});
content += "</ul>";
target.append(content);
}
//这两个函数本来想的是以后改着方便
function GenerateLabel(num){
var a = "<a name = 'label" + num + "'></a>";
return a;
}
function GenerateA(num ,text){
var ss = "<a href='" + "#label"
+ num +"'>" + text
+ "</a>";
return ss;
}
使用方法
写完提交的时候突然发现在随笔里加js要申请js权限,想申请下来之后再加上。。不过想想我这么懒说不定哪天就忘记了,还是加上好了。
首先,没有js权限的申请js权限。
在写好的文章的想要插入目录的位置的HTML代码里加上:
<div id="contents" display="block" style="padding:10px 0;background:#BBB">
</div>
在
<script type="text/javascript"></script>
之间加上代码
在
<script type="text/css"></script>
加上想要的目录样式
用jquery实现文章自动生成二级目录的更多相关文章
- 用jquery实现文章自动生成二级目录(续)
前文:用jquery实现文章自动生成二级目录. 使用方法的补充 我们可以把我们的js和css上传到博客园,然后在页面HTML代码中使用他们. 发现的一些问题 在我把我的js放到自己的博客园上运行之后发 ...
- Jquery实现自动生成二级目录
在博客园开通博客以后,就看到某位博友写的js自动生成目录的文章,当时觉得生成目录能给阅读带来方便,所以就直接拿来使用了.用了一段时间以后,发现只能生成一级目录,不能生成多级目录,有点美中不足.所以想着 ...
- 第 10 篇:小细节 Markdown 文章自动生成目录,提升阅读体验
目录 在文中插入目录 在页面的任何地方插入目录 处理空目录 美化标题的锚点 URL 作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 上 ...
- JavaScript自动生成博文目录导航
转载于:JavaScript自动生成博文目录导航 我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到 具体的内容 ...
- JavaScript自动生成博文目录导航/TOP按钮
博客园页面添加返回顶部TOP按钮 进入网页管理->设置 在"页面定制CSS代码"中添加如下css样式,当然你可以改为自己喜欢的样式 此处可以将背景色background-co ...
- TP自动生成模块目录
TP自动生成模块目录 例如我想在项目中增加一个AdminI模块 只需要在入口文件index.php中添加: define('BIND_MODULE','Admin'); 再访问127.0.0.1项目就 ...
- JavaScript:自动生成博文目录导航
感谢 孤傲苍狼 分享了 自动生成博文目录的方法,本文仅作存档使用. 图 1:效果预览 CSS 样式 #TOCbar{ font-size:12px; text-align:left; position ...
- CSDN中根据文章自动生成文章目录
概述 CSDN中有根据文件内容中H标签在文章中自动生成文章目录,看起来比较专业,就想把它搬到自己的博客园中.类似下图 提取JS脚本 通过浏览器开发者工具(IE/Chrome)找到产生文章目录javas ...
- Nginx根据目录自动生成二级域名
前言: 每次创建二级域名如果都修改一次配置文件的话,项目多了会带来很多不必要的工作量,如果能够在一个web目录下创建一个文件夹并且自动生成文件目录的话,那真是极好的,本文就基于Nginx贴出这 ...
随机推荐
- codevs 1332 上白泽慧音
1332 上白泽慧音 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大 ...
- 【BZOJ】1455 罗马游戏
[算法]可并堆(左偏树) #include<cstdio> #include<algorithm> using namespace std; ; int l[maxn],r[m ...
- HDU 2546 饭卡 (dp)
题目链接 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上 ...
- 复现VGG19训练自定义图像分类
1.复现VGG训练自定义图像分类,成功了哈哈. 需要代码工程可联系博主qq号,在左边连接可找到. 核心代码: # coding:utf-8 import tensorflow as tf import ...
- JS的prototype和__proto__
一.prototype和__proto__的概念 prototype是函数的一个属性(每个函数都有一 个prototype属性),这个属性是一个指针,指向一个对象.它 是显示修改对象的原型的属性. _ ...
- sass_安装问题(ERROR: Could not find a valid gem 'sass' (>= 0), here is why: Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: cert)
安装sass前需安装ruby 安装好ruby好打开命令行,输入 gem install sass 出现错误: ERROR: Could not find a valid gem 'sass' (> ...
- 第一章:获取服务器服务banner
#!c:\\perl\\bin\\perl.exe #读取服务器的首行(banner) use IO::Socket; my $service = '121.201.67.177:ssh'; my $ ...
- supervisor 简单使用
supervisor是一个c/s系统,被用来在类Unix系统中监控进程状态.supervisor使用python开发. 服务端进程为supervisord,主要负责启动自身及其监控的子进程,响应客户端 ...
- Linux内核中链表的实现与应用【转】
转自:http://blog.chinaunix.net/uid-27037833-id-3237153.html 链表(循环双向链表)是Linux内核中最简单.最常用的一种数据结构. ...
- 110.Balanced Binary Tree---《剑指offer》面试39
题目链接 题目大意:判断一个二叉树是否是平衡二叉树. 法一:dfs.利用求解二叉树的高度延伸,先计算左子树的高度,再计算右子树的高度,然后两者进行比较.o(nlgn).代码如下(耗时4ms): pub ...