jquery抓取网页内容(一下如何实现自动提取内容主题生成目录并实现点击跳转)

优采云 发布时间: 2021-11-29 21:12

  jquery抓取网页内容(一下如何实现自动提取内容主题生成目录并实现点击跳转)

  当页面内容过多时,必须要有各级标题,内容太长,用户访问很不方便。如果可以添加目录,点击跳转,用户体验会大大提升。

  从前端来看,解决这个问题其实很简单,我们只需要创建一些节点,或者锚文本,然后将链接指向那个地方。因此,我们可以在后台创建一个目录,并分配相应的节点或锚文本。但这不好:工作量太大,非常不方便。所以我想知道有没有办法自动提取内容中的主题作为目录使用,并实现它?答案是肯定的,下面我们来看看如何使用jquery自动提取内容和主题生成目录点击跳转:

  首先,在后台编辑内容时,需要有对应的主题可以提取

  此示例基于 h 标题。一般h1是文章的标题,所以内容部分应该是h2、h3、h4。后台编辑内容很容易,而且从优化的角度来说,应该是这样做的,所以没有多余的工作要做。以Kindeditor为例,首先选择要设置为标题的内容,设置为标题,如下图所示:

  

  然后,在对应的前端页面嵌入如下js语句

  target = $("#article .fl");//需要提取目录的内容所在包裹器,如果要进行相对定位,建议选择上一级dom

$(document).ready(function() {

GenerateContents();//提起目录并实现点击跳转

});

function GenerateContents() {

var num = 0;//第x个目录 用于jquery跳转实现

var content = "目录";//创建的目录的dom结构

content += '';

$("h2").each(function(){//遍历内容中的所有h2标签 作为一级目录

content += ""+GenerateA(num,$(this).text());

$(this).before(GenerateLabel(num));

num++;

var second = $(this).nextUntil("h2","h3");

if (second) {

content += "";

second.each(function(){//变量内容中的所有h3标签 作为二级目录

content += ""+GenerateA(num,$(this).text())+"";

$(this).before(GenerateLabel(num));

num++;

});

content += "";

};

content += "";

});

content += "";

target.append(content);//插入目录到页面中

}

function GenerateLabel(num){

var a = "<a name = 'label" + num + "'></a>";

return a;

}

function GenerateA(num ,text){

var ss = "<a data-i='" + num +"'>" + text + "</a>";

return ss;

}

//实现点击跳转

$('#quick a').live('click',function(){

var _obj=$(this).attr('data-i');

_obj=$('a[name=label'+_obj+']');

var _top=_obj.position().top;

_top-=80;

$('html,body').animate({scrollTop:_top},500);

})

  此时,提取内容主题生成目录,实现点击跳转。当然,你也应该结合css进行定位,比如将目录设置为固定(fixed)定位。

  #quick{ position: fixed; left: 20px; top:140px; text-align: right;}

#quick{ font-size: 18px; color: #999;}

#quick a{ font-size: 14px; padding: 10px 0; font-weight: bold; cursor: pointer; color: #333;}

#quick a:hover{ color: #fd5050;}

#quick li li a{ font-weight: normal; color: #666;}

  效果图如下:

  

  © 致远2020-02-25,原创内容,转载请注明错误:jquery自动提取内容和主题生成目录,实现点击跳转

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线