利用js查找页面中的内链,外链
起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊???????
后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a标签的href属性,查找字符串中是否存在href,后来又被问到如果用选择器怎么用呢?自己不会....
后来下来又想到这个问题,觉得自己猪啊,有属性选择器来匹配,但是当时为什么回答不上来,因为这个是css3中的,自己只知道,但是不太经常用,所以第一反应没有想到,归根结底还是个熟练度的问题,没有达到熟悉的程度!
这里粘贴一下属性选择
| 选择器 | 描述 |
|---|---|
| [attribute] | 用于选取带有指定属性的元素。 |
| [attribute=value] | 用于选取带有指定属性和值的元素。 |
| [attribute~=value] | 用于选取属性值中包含指定词汇的元素。 |
| [attribute|=value] | 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。 |
| [attribute^=value] | 匹配属性值以指定值开头的每个元素。 |
| [attribute$=value] | 匹配属性值以指定值结尾的每个元素。 |
| [attribute*=value] | 匹配属性值中包含指定值的每个元素。 |
自己去网上查了一下关于内链和外链,很多讨论的都是如何提高网站的排名,和网站的优化问题,那么如何查找到内链和外链的数量呢?提供的答案是用站长工具,哈哈,不是我想要的,就贴出自己的想法吧,可能有缺陷,但能实现一定的功能
下面用自己的话通俗解释一下这些概念,自己比较讨厌官方那些比较生涩的词汇,不接地气
内链:就是自己网站内部的链接,可以跳转到自己网站内部其它页面的锚文本(超链接),如导航等....比如:<?php echo site_url('former/services');?>,这是phpCI框架形式的,其它有自己的样式,或者a标签的href=“#”或者href="javascript:void(0)"或href="javascript:"等也属于内链
外链:外链暂时自己了解到有三种类型:
- 锚文本(一个词或一句话有自己的链接,是链接到其他网站的,一般是http:做开头的)
- 纯文本链接(就如我们写文章或发博客时直接贴出来一个链接,如我现在贴我的博客地址http://www.cnblogs.com/lpshan/,它只是个链接地址,但点击不能到达目的地,自己需要粘贴到地址栏中)
- 反链(假设有两个页面A和B,B页面通过一个链接指向A页面,那么,B就是A的一个反链,做排名优化时有这样一句话“内链为王,外链为皇”)
<script type="text/javascript">
$(document).ready(function(e) {
var allLink=$("a").length; //a标签的总数
var wLink=$("a[href^='http:']").length;//外链
var nLink=$("a[href^='<?php']").length;//内链 var bodyString=$("body").html();
var bodyLink=(nr.split('http')).length-1; //body内的外链 alert("bodyLink"+bodyLink+"总链有:"+allLink+"外链有:"+wLink+",内链有:"+nLink);
});
</script>
写了一个bodyLink因为自己有疑问,反链中的纯文本链接,地址不在a标签的href属性中,所以对于$("a[href^='http:']").length,纯文本链接外链就查不到,所以想了下面一种方法,把body中的内容按照字符串的形式获取,再从字符串中获取http字符,但是这样有个问题需要注意,他会获取body内的所有,包括注释掉的,也是有弊端吧。
至于上面的内链获取,可以获得总连接数-外链,因为有的a标签的href=“#”或者href="javascript:void(0)"或href="javascript:"等也属于内链。
感觉面试后虽然面试官问我了没几个问题,但是引导我又学到了好几个知识,很感谢,;-)
自己在学校没人引导,自己误打误撞的学学这学学那,觉得提高的很有局限,学前端除了自己学,写项目外,最好也有人去引导,这样提高的着会相对快一些
利用js查找页面中的内链,外链的更多相关文章
- UWP 利用VisualTreeHelper查找页面中的元素
一般我们在展示数据的时候,都会采用DataTemplate的预先设置数据模板,再使用Set ItemsSource的方式进行数据绑定 这样就能满足大部分的需求. 不过有时候需要对页面已经展示出来的元素 ...
- 利用JS将页面中包含“一个”字段值的元素改为红色
document.body.innerHTML = document.body.innerHTML.replace(/一个/ig,"<span style='color: red;'& ...
- 用JS改变页面中b标签的样式啊 样式的等
用JS改变页面中b标签的样式啊 样式的等 ,实际上是在标签内加上样式 ,用媒体查询的话 ,不能生效 <!DOCTYPE html> <html lang="en&qu ...
- JS基础入门篇( 三 )—使用JS获取页面中某个元素的4种方法以及之间的差别( 一 )
1.使用JS获取页面中某个元素的4种方法 1.通过id名获取元素 document.getElementById("id名"); 2.通过class名获取元素 document.g ...
- js 查找数组中某个字符出现的次数
1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...
- 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分
找到你的位置(JS在页面中的位置) 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页 ...
- js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引
实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...
- JS查找字符串中出现次数最多的字符
本文给大家带来两种js中查找字符串中出现次数最多的字符,在这两种方法中小编推荐使用第二种,对js查找字符串出现次数的相关知识感兴趣的朋友一起看看吧 在一个字符串中,如 'zhaochucichuz ...
- JS - 查找同辈中的对象
今天在使用parent().find(".a:first")的时候,发现查找结果非正常按照顺序来的.有点递归的感觉,从底层往上. 因为需要的是同级的对象,所以去查了一下jquery ...
随机推荐
- linux 环境变量
电脑中必不可少的就是操作系统.而Linux的发展非常迅速,有赶超微软的趋势.这里介绍Linux的知识,让你学好应用Linux系统.比如要把/etc/apache/bin目录添加到PATH中,方法有三: ...
- Ansible 模块命令介绍
copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...
- disconf搭建
简介: Distributed Configuration Management Platform(分布式配置管理平台) 它是百度的一套完整的基于zookeeper的分布式配置统一解决方案,具有如下特 ...
- 安装yum
RedHat 安装配置 YUM 删除 1 . 查询系统是否安装 yum : rpm – qa|grep yum 2删除原有 yum rpm -qa|grep yum|xargs rpm -e – no ...
- javascript中的对象
除了字符串,数字,布尔值(true,false),null,undefined,js中的值都是对象. 操作一个对象 var o = {name: 'man', value: 99} o.name = ...
- iOSIPV6简单测试环境搭建
应苹果官方要求,iOS应用必须适配IPV6才能通过审核,这里分享一个简单的ipv6测试方法 一.工具原料 1.1 Mac电脑一台 1.2 iPhone手机两部 1.3 数据线一根 二.步骤方法 2.1 ...
- CentOS安装gitLab服务器
首先利用gitlab-install-el6.sh安装,比较简单: (出处:http://www.linuxidc.com/Linux/2013-06/85754.htm) 1:如果有条件,提供一台全 ...
- tensorflow中的lstm的state
考虑 state_is_tuple Output, new_state = cell(input, state) state其实是两个 一个 c state,一个m(对应下图的 ...
- UnrealScript语言基础
总体特征 (1)大小写不敏感.关键字.宏.变量名.函数名以及类名不区分大小写:变量名可以与关键字同名 (2)局部变量.成员变量未初始化时,会被编译器初始化 (3)没有全局变量.全局函数,所有东西必须写 ...
- js获取浏览器body或窗宽度高度合集
<script type="text/javascript"> var s = " "; document.documentElement.scro ...