博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始的全栈工程师——js篇2.17(属性和节点获取)
阅读量:4703 次
发布时间:2019-06-09

本文共 1492 字,大约阅读时间需要 4 分钟。

DOM

一、节点树状图

Document>documentElement>body>tagname

二、常用的节点类型

元素节点(标签)

文本节点(文本节点)

属性节点(标签里的属性)

 

三、document有个属性叫nodeType 返回的是数字

1代表元素节点  2代表属性节点  3代表文本节点

 

四、节点的获取

Document.getElementById()   通过id名获取节点

Document.getElementsByClassName()  通过class名获取节点

Document.getElementsByTagName()  直接获取标签

Document.querySelector()

Document.querySelectorAll()

 

1.属性节点的获取

nodeType <--判断节点类型

元素.attributes <--获取元素身上所有属性构成的集合
元素.getAttribute(“class”) <--获取元素身上指定的属性的属性值
元素.setAttribute(“class”.“class”)<--给元素添加一个属性和属性值 可以修改存在的属性
元素.removeAttribute(“class”)<--删除元素中的一个属性

 

2.获取元素的子节点

元素.childNodes <--获取元素身上的所有子节点 包括文本节点

元素.children <--获取元素身上的所有子节点 不包括文本节点
父元素.firstElementChild <--获取元素里第一个子节点
父元素.lastElementChild <--获取元素里最后一个子节点
元素.parentNode 获取一个元素的父节点 <--可以写多个.parentNode 来获取父级的父级 直到null

 

3.获取父节点

创建子节点:var span = document.creatElement(“span”) <--创建一个节点赋值给span

元素.appendChild(span) <--在元素里面的最后一个子节点后面添加一个span
父元素.insertBefore(新元素,div.children[0]) <--在父元素的某一个子节点前添加一个新元素
元素.removeChild(元素.children[0]) <--在父元素中删除指定的子节点

元素.innerHTML=“内容”  <-- 给元素添加内容

 

 

兼容性

元素没有子节点,ie低版本会读取不到,而标准浏览器会。

因为标准浏览器会把文本节点当作子节点,而ie6-8不会。

超链接a的属性href分析

<a href=””> 点击会刷新页面,相当于向后台发送一次请求。

<a href=”#s”> 锚点跳转 跳转到某一个id叫s的位置上

<a href=”javascript:;”> 取消刷新页面的功能

 

 

 

拓展:

字符串拼接和Dom创建都是渲染的方式

1)字符串拼接

优点 简单,层次感强,可以处理大量数据

缺点:字符串拼接会影响到原有子元素的事件

2)Dom创建

优点:是一个独立的个体,不会影响到原有的元素

缺点:处理数据量过大会比较麻烦,会造成DOM回流。

 

Dom回流

页面渲染时,我们对html结构简单的增删查改时,浏览器会对所有的dom进行重新排列,这就是Dom回流,严重影响浏览器的性能。

 

提升页面性能优化

  1. 多采用雪碧图
  2. 阻止超链接的默认行为
  3. 减少Dom回流
  4. 减少向服务器请求的次数

 

 

 

 

 

转载于:https://www.cnblogs.com/lijieqiqi/p/qiershiliu.html

你可能感兴趣的文章
fatal: remote origin already exists.
查看>>
LeetCode 242. Valid Anagram
查看>>
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
团队项目(第五周)
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
.net开源CMS
查看>>
JdbcTemplate
查看>>
第一次使用maven记录
查看>>
SharePoint服务器端对象模型 之 使用CAML进展数据查询
查看>>
Building Tablet PC Applications ROB JARRETT
查看>>
Adobe® Reader®.插件开发
查看>>
【POJ 3461】Oulipo
查看>>
Alpha 冲刺 (5/10)
查看>>
使用Siege进行WEB压力测试
查看>>
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>