起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊???????

后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取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:"等也属于内链

外链:外链暂时自己了解到有三种类型:

  1. 锚文本(一个词或一句话有自己的链接,是链接到其他网站的,一般是http:做开头的)
  2. 纯文本链接(就如我们写文章或发博客时直接贴出来一个链接,如我现在贴我的博客地址http://www.cnblogs.com/lpshan/,它只是个链接地址,但点击不能到达目的地,自己需要粘贴到地址栏中)
  3. 反链(假设有两个页面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查找页面中的内链,外链的更多相关文章

  1. UWP 利用VisualTreeHelper查找页面中的元素

    一般我们在展示数据的时候,都会采用DataTemplate的预先设置数据模板,再使用Set ItemsSource的方式进行数据绑定 这样就能满足大部分的需求. 不过有时候需要对页面已经展示出来的元素 ...

  2. 利用JS将页面中包含“一个”字段值的元素改为红色

    document.body.innerHTML = document.body.innerHTML.replace(/一个/ig,"<span style='color: red;'& ...

  3. 用JS改变页面中b标签的样式啊 样式的等

    用JS改变页面中b标签的样式啊 样式的等    ,实际上是在标签内加上样式 ,用媒体查询的话 ,不能生效 <!DOCTYPE html> <html lang="en&qu ...

  4. JS基础入门篇( 三 )—使用JS获取页面中某个元素的4种方法以及之间的差别( 一 )

    1.使用JS获取页面中某个元素的4种方法 1.通过id名获取元素 document.getElementById("id名"); 2.通过class名获取元素 document.g ...

  5. js 查找数组中某个字符出现的次数

    1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...

  6. 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分

    找到你的位置(JS在页面中的位置) 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页 ...

  7. js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引

    实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...

  8. JS查找字符串中出现次数最多的字符

    本文给大家带来两种js中查找字符串中出现次数最多的字符,在这两种方法中小编推荐使用第二种,对js查找字符串出现次数的相关知识感兴趣的朋友一起看看吧   在一个字符串中,如 'zhaochucichuz ...

  9. JS - 查找同辈中的对象

    今天在使用parent().find(".a:first")的时候,发现查找结果非正常按照顺序来的.有点递归的感觉,从底层往上. 因为需要的是同级的对象,所以去查了一下jquery ...

随机推荐

  1. 338. Counting Bits

    https://leetcode.com/problems/counting-bits/ 给定一个非负数n,输出[0,n]区间内所有数的二进制形式中含1的个数 Example: For num = 5 ...

  2. ALS

    最近看了一些关于ALS(肌萎缩性脊髓侧索硬化症)的电视剧和一本ALS患者的生活自述的书. 一次偶然的机会在一部日剧<我所存在的时间>中看到了ALS这种疾病,感觉这就像众病之王--癌症一样, ...

  3. PHP修改表格(增删改)

    要求: 1.熟练shi用  post 和  get  传值        2. php嵌套在HTML中        3.熟练:if 语句(其他语句)的使用 --------------------- ...

  4. STM32F412应用开发笔记之二:基本GPIO控制

    NUCLEO-F412ZG板子上的元器件并没有完全焊接,除去ST-LINK部分和电源部分后,还有用一个USB主机接口,三个LED灯和两个按钮,不过很多功能引脚都已经引到了插针.查看原理图可发现,由原理 ...

  5. October 28th Week 44th Friday 2016

    Life is not a problem to be solved, but a reality to be experienced. 人生不是待解决的难题,而是等着我们去体验的现实. Press ...

  6. 3dmax导出到blend或者vs中

    使用3dmax将模型导成obj格式的时候,可以导出材质或者不导出. 1.如果不导出,则按下图不勾选导出材质和创建材质库选项.这样生成的obj是可以直接再blend或者vs中打开的. 2.如果导出,不仅 ...

  7. 项目中 -- 设置tabBar样式 (旅游局)

    - (void)addChildViewController:(UIViewController *)ViewController image:(UIImage *)image selectImg:( ...

  8. C# 小知识

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  9. javaScript里的原型链

    原型对象也是普通的对象,是对象一个自带隐式的__proto__属性,原型也有可能有自己的原型,如果一个原型对象的原型不为null的话,我们就称之为原型链.原型链是由一些用来继承和共享属性的对象组成的( ...

  10. VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4

    对于一些已经解决的问题,本博客不再讨论.只将本人遇到的问题做简单的说明. 一.VS 2013编译64位版本QT 4.8.6 QT项目官网中,对于QT4,其只提供了windows X86的版本,并且支持 ...