当前位置: 首页 > news >正文

织梦做的网站打包在dw修改友情链接的四个技巧

织梦做的网站打包在dw修改,友情链接的四个技巧,深圳网站建设哪家最好,广东网站建设服务公司笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文…

笔记说明

重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专栏学习【原文有winter的语音】,如有侵权请联系我,邮箱:kaimo313@foxmail.com。

一、DOM API 介绍

文档对象模型:用来描述文档,特指 HTML 文档,同时它又是一个对象模型,使用对象这样的概念来描述 HTML 文档

DOM API 大致包含 4 个部分

  • 节点:DOM 树形结构中的节点相关 API。
  • 事件:触发和监听事件相关 API。
  • Range:操作文字范围相关 API。
  • 遍历:遍历 DOM 需要的 API。

HTML 文档是一个由标签嵌套而成的树形结构,因此,DOM 也是使用树形的对象模型来描述一个 HTML 文档

二、节点

DOM 的树形结构所有的节点有统一的接口 Node

节点的html写法

Element: <tagname>...</tagname>
Text: text
Comment: <!-- comments -->
DocumentType: <!Doctype html>
ProcessingInstruction: <?a 1?>
复制代码

三、Node

Node 是 DOM 树继承关系的根节点。

1、Node 提供了一组属性,来表示它在 DOM 树中的关系

  • parentNode
  • childNodes
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

2、Node 中也提供了操作 DOM 树的 API

  • appendChild
  • insertBefore
  • removeChild
  • replaceChild

3、Node 还提供了一些高级 API

  • compareDocumentPosition:是一个用于比较两个节点中关系的函数。
  • contains:检查一个节点是否包含另一个节点的函数。
  • isEqualNode:检查两个节点是否完全相同。
  • isSameNode:检查两个节点是否是同一个节点。
  • cloneNode:复制一个节点,如果传入参数 true,则会连同子元素做深拷贝。

4、DOM 标准规定了节点必须从文档的 create 方法创建出来

  • createElement
  • createTextNode
  • createCDATASection
  • createComment
  • createProcessingInstruction
  • createDocumentFragment
  • createDocumentType

四、Element 与 Attribute

元素对应了 HTML 中的标签,它既有子节点,又有属性。

1、把元素的 Attribute 当作字符串来看,有以下的 API

  • getAttribute
  • setAttribute
  • removeAttribute
  • hasAttribute

2、把 Attribute 当作节点

  • getAttributeNode
  • setAttributeNode

五、查找元素

1、document 节点提供了查找元素的能力

  • querySelector
  • querySelectorAll
  • getElementById
  • getElementsByName
  • getElementsByTagName
  • getElementsByClassName

2、getElementById、getElementsByName、getElementsByTagName、getElementsByClassName,这几个 API 的性能高于 querySelector

3、getElementsByName、getElementsByTagName、getElementsByClassName 获取的集合并非数组,而是一个能够动态更新的集合。

var cxk = document.getElementsByClassName('kaimo');
console.log(cxk.length); // 0var kaimo = document.createElement('div');
kaimo.setAttribute('class', 'kaimo')
document.documentElement.appendChild(kaimo)
console.log(cxk.length); // 1
复制代码

浏览器内部是有高速的索引机制,来动态更新这样的集合的。

六、遍历

DOM API 中还提供了 NodeIterator 和 TreeWalker 来遍历树。并且它们提供了过滤功能,还可以把属性节点也包含在遍历之内。

6.1、NodeIterator 的基本用法

var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT, null, false);var node;
while(node = iterator.nextNode()){console.log(node);
}
复制代码

6.2、TreeWalker 的用法

var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, null, false)var node;
while(node = walker.nextNode()){if(node.tagName === "p")node.nextSibling();console.log(node);
}
复制代码

建议需要遍历 DOM 的时候,直接使用递归和 Node 的属性。

七、Range

Range API 表示一个 HTML 上的范围,这个范围是以文字为最小单位的。

1、注意Range API节点 API 更精确操作 DOM 树,并且性能更高,但是使用起来比较麻烦,在实际项目中,并不常用,只有做底层框架和富文本编辑对它有强需求。

2、创建 Range 一般是通过设置它的起止来实现

var range = new Range(),firstText = p.childNodes[1],secondText = em.firstChild
range.setStart(firstText, 9) // do not forget the leading space
range.setEnd(secondText, 4)
复制代码

3、通过 Range 也可以从用户选中区域创建

// 用于处理用户选中区域
var range = document.getSelection().getRangeAt(0);
复制代码

4、更改 Range 选中区段内容由 extractContents(取出) 和 insertNode(插入) 来实现。

var fragment = range.extractContents()
range.insertNode(document.createTextNode("abcd"))
复制代码

个人总结

不懂一些概念可以参考:

1、developer.mozilla.org/zh-CN/docs/…

2、www.runoob.com/jsref/dom-o…

转载于:https://juejin.im/post/5ce58f565188253382696f8c

http://www.lbrq.cn/news/2443177.html

相关文章:

  • wordpress主题更改首页贵州seo技术查询
  • 网站标题写什么作用是什么网站推广优化价格
  • 网站建设合同封面网络营销是指
  • 个人网站免费模板seo外链友情链接
  • 学校网站模板html下载女孩子做运营是不是压力很大
  • 昆明定制化网站建设天津seo推广软件
  • 哈尔滨住房和城乡建设委员会网站百度app登录
  • 微信自己怎么弄小程序北京seo供应商
  • 酒泉如何做百度的网站经典软文广告
  • wordpress macos武汉seo网站优化排名
  • 如何建设一个商城网站搜索推广和信息流推广的区别
  • 做悬赏的网站网络营销专业是学什么的
  • 怎么建立一个网站csdn网络营销团队
  • 网站需要什么服务器seo企业培训班
  • 检测网站是用什么代码做的软件百度推广深圳分公司
  • 个人备案域名做企业网站广州网络推广定制
  • Wordpress自动回复评论昆明seo网站建设
  • 网站建设与熊掌号未来的关系百度游戏排行榜风云榜
  • 海原网站建设网站模板价格
  • 常州网站外包bing搜索引擎国内版
  • 信誉好的邯郸网站建设一份完整的营销策划方案
  • 电商公司网站大的网站建设公司
  • 网站开发费属于软件费吗燃灯seo
  • 自己做网站投放广告百度关键词搜索量查询
  • fineui 如何做网站济南网络seo公司
  • 深圳专业网站建设公做网站怎么赚钱
  • 淘宝客建站还能赚钱吗百度云资源搜索入口
  • 博客的网站页面设计最全bt磁力搜索引擎索引
  • 化工类网站模板最好的免费建站网站
  • 河北网站制作网上怎么找人去推广广告
  • Voxtral Mini:语音转文本工具,支持超长音频,多国语音
  • 各种前端框架界面
  • 自定义定时任务功能详解
  • xLua和C#交互
  • NLua和C#交互
  • 【Spring WebFlux】为什么 Spring 要拥抱响应式