展示效果
注意,在这里标题二代表一级,标题三代表二级,标题四代表三级。
设置方式
首先我们需要申请开通js权限,然后将目录js代码复制到博客侧边栏公告(支持HTML代码) (支持 JS 代码)中,如下所示:
生成目录JS代码
代码语言:javascript复制< script type = 'text/javascript' >
// 生成目录索引列表
function GenerateContentList() {
var mainContent = $('#cnblogs_post_body');
//h2,大标标题内容
var h2_list = $('#cnblogs_post_body h2'); //如果你的章节标题不是h2,只需要将这里的h2换掉即可
if (mainContent.length < 1) return;
if (h2_list.length > 0) {
var content = '<a name="_labelTop"></a>';
content = '<div id="navCategory">';
content = '<p style="font-size:18px"><b>思维导航:</b></p>';
content = '<ul>';
//目录遍历
for (var i = 0; i < h2_list.length; i ) {
//回到顶部
var go_to_top = '<div style="text-align: right;"><a href="#_labelTop"><b style="font-family: "Arial","Microsoft YaHei","黑体","宋体",sans-serif;">?回到顶部</b></a><a name="_label' i '"></a></div>';
//回到顶部添加
$(h2_list[i]).before(go_to_top);
//h3列表数据
var h3_list = $(h2_list[i]).nextAll("h3");
//console.log("h3l列表数据");
var li3_content = '';
for (var j = 0; j < h3_list.length; j ) {
//h3内容
var tmp = $(h3_list[j]).prevAll('h2').first();
if (!tmp.is(h2_list[i])) break;
var li3_anchor = '<a name="_label' i '_' j '"></a>';
$(h3_list[j]).before(li3_anchor);
li3_content = '<li style="list-style-type:decimal;"><a href="#_label' i '_' j '">' $(h3_list[j]).text().replace(/:/g, "") '</a></li>';
//查询h4导航内容遍历----2020-06-06(^o^)/~
var li4_content = ""; //h4遍历的列表数据
var h4_list = $(h3_list[j]).nextAll("h4");
//数据遍历
for (var y = 0; y < h4_list.length; y ) {
//获取第一组h4的值
var tmp4 = $(h4_list[y]).prevAll('h3').first();
//当遍历内容不等于该h3目录下的值时
if (!tmp4.is(h3_list[j])) break;
var li4_anchor = '<a name="_label' i '_' j '_' y '"></a>';
//插入对应的索引
$(h4_list[y]).before(li4_anchor);
li4_content = '<li style="list-style-type:lower-alpha"><a href="#_label' i '_' j '_' y '">' $(h4_list[y]).text() '</a></li>';
}
//console.log("h4遍历结束了");
//h4遍历查询结束
if (li4_content.length > 0) {
li3_content = "<ul>" li4_content "</ul></li>";
} else {
li3_content = "</li>";
}
}
var li2_content = '';
if (li3_content.length > 0) li2_content = '<li style="list-style-type:square"><a href="#_label' i '">' $(h2_list[i]).text().replace(/:/g, "") '</a><ul>' li3_content '</ul></li>';
else li2_content = '<li style="list-style-type:square"><a href="#_label' i '">' $(h2_list[i]).text().replace(/:/g, "") '</a></li>';
content = li2_content;
}
content = '</ul>';
content = '</div><p> </p>';
content = '<p style="font-size:18px"><b>文章正文:</b></p>';
if ($('#cnblogs_post_body').length != 0) {
$($('#cnblogs_post_body')[0]).prepend(content);
}
}
}
//执行自动生成目录索引列表
GenerateContentList();
< /script>/