js节点的类型
1. dom>documentElement>body>tagname
2.我们常用的节点标签。
元素节点(标签)
文本节点
属性节点(标签里的属性)

3.document有个属性nodeType返回的是数字
1.代表元素节点 2.代表属性节点 3.代表文本节点
4.节点的获取
元素节点获取有很多方法
Document.getElementById()
Document.getElementsByClassName()
Document.getElementsByTagName()
Document.querySelector()
Document.querySelectorAll()
属性节点的获取
元素.attributes 获取元素身上所有属性构成的集合
元素.setAttribute(“属性名”,“属性值”)给元素设置属性和属性值
元素.getAttribute(“属性名”)获取属性值的方法
元素.removerAttribute("属性")删除属性
文本节点
没有获取的方法,没有意思
5.获取元素的子节点
元素.childNodes 这个属性有兼容性 标准浏览器会获取文本节点
而低版本浏览器不会。所以建议使用 children这个属性
获取单个子节点
获取第一个子节点
标准下 元素.firstElementChild
非标准下 元素.firstChild
兼容写法
var list=document.getElementById("list")
var fist=listElementChild||list.fistChild
console.log(fist)
获取最后一个子节点
元素.lastElementChild 元素.lastChild
获取是一个兄弟节点
元素.previousSibling 元素.prevElementSibling
获取下一个兄弟节点
元素.nextSibling 元素.nextElementSibling
6.获取父节点
元素.parentNode 没有兼容性
元素.parentNode.parentNode
区分 offsetparent和parentNode
DOM2创建节点
1.生成节点的方法 document。createElement(“div”)
2.插入节点的方法 父节点.appendChild(新节点)
在父节点子节点的后面插入新的节点
3.在指定位置插入新的节点
(1)父元素.insetBefore(新节点,谁的前面) 将新节点插入指定元素前面
4. 删除元素节点 父元素.removerChild()
案例分析
防留言板

兼容性
元素没有子节点,ie低版本读取不到,而标准浏览器会
因为标准浏览器会把文本节点当作子节点,而ie6-8不会
超链接a的属性href 分析
<a href="">点击会刷新页面,相当于向后台发送一个请求。
<a href="#s">锚点跳转,跳转到某一个id叫s的位置上
<a href="javascript">取消刷新页面的功能
拓展
字符串拼接和DOM创建都是渲染方式
字符串拼接
优点:简单,层次感强,可以处理大量数据
缺点:字符串拼接会影响到原有子元素事件
DOM创建
优点:每个都是独立的,不会影响原子元素事件
缺点:处理大量数据会比较麻烦,会造成DOM回流·
什么是DOM回流?
页面渲染时,我们对HTML结构简单的增删查改时,浏览器会对所有的dom进行重新排序,这就i是DOM回流,严重影响浏览器性能
补充:
提升页面性能优化
1.多采用雪碧图
2.防止超链接默认行为
3.减少DOM回流
4.减少向服务器发送请求次数
发表人:晋飞翔
QQ:318080891
js节点的类型的更多相关文章
- js节点解析
在JS中,每一个节点都有一个nodeType 属性,用于表明节点的类型.节点类型由在Node 类型中定义的下列12个数值常量来表示,任何节点类型必居其一: Node.ELEMENT_NODE(1); ...
- JS nodeType返回类型
JS nodeType返回类型 前几天朋友正好问道 这个 js的nodeType是个什么概念(做浏览器底层的)正好遇到这篇文章可以向大家解释下 将HTML DOM中几个容易常用的属性做下记录: nod ...
- 关于snowflake算法生成的ID转换为JS的数字类型由于过大导致JS精度丢失的问题
JS的数字类型目前支持的最大值为:9007199254740992,一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致. JAVA的Long类型的 最大值为:922337203 ...
- cocos2dx 如何获得节点的类型
1. 需求:在所有子节点中得到是ui::Text类型的节点,并对其进行操作. 2. 解决方案:在根节点Node中有一个如下的函数: /** * Gets the description string. ...
- js节点操作实例
写了一个简单的小例子来引用js实例 1. 初步节点操作: 2.兼容性节点操作: 3.节点的类型,名字: 4.使用setAttribute设置属性 5.节点复制操作: 6.删除和替换节点 如有错误,还望 ...
- js判断undefined类型
js判断undefined类型 if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了下资料要用ty ...
- js DOM Node类型
DOM(文档对象模型)是针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的.以特定节点为根节点的树形结构.节点分为12种不同的类型,每种类型分别表示 ...
- js 的强制 类型 转换cast, 伪对象?
拼音输入法简单快捷, 但是重码多, 所以要看清了再选择, 不然会影响输入正确性和 心情的! js的类型 隐式 转换? 是指, 根据 表达式的操作符号 如if(), + , && , j ...
- js 节点 document html css 表单节点操作
js 节点 document html css 表单节点操作 节点操作:访问.属性.创建 (1)节点的访问:firstChild.lastChild.childNodes.parentChild(父子 ...
随机推荐
- 前端“黑话”polyfill
前言 在Web前端开发这个日新月异的时代,总是需要阅读一些最新的英文技术博客来跟上技术的发展的潮流.而有时候会遇到一些比较高频的“黑话”,在社区里面可能已经是人人皆知的“共同语言”,而你接触的少就偏偏 ...
- Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记
第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...
- eclipse对于标签的配置不会出现自动提示的解决
解决办法:引入 mybatis-3-config.dtd 文件Window-preferences-搜索 xml-xml catalog在 User Specified Entries 目录下 add ...
- Redis 指令 学习笔记
Redis 什么是Redis redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,还提供了多个语言的API,操作比较方便 安装re ...
- 在react中使用less(官方做法)
概述 在用create-react-app搭建react app的时候,原生并不支持less,只支持css.不过create-react-app官方给了一种方法使用less,我觉得很有用,记录下来,供 ...
- spring中的mybatis的sqlSession是如何做到线程隔离的?
项目中常常使用mybatis配合spring进行数据库操作,但是我们知道,数据的操作是要求做到线程安全的,而且按照原来的jdbc的使用方式,每次操作完成之后都要将连接关闭,但是实际使用中我们并没有这么 ...
- Scala - Tips
1- 运行scala命令,提示报错 问题现象: 在Windows7系统中安装scala后(直接安装MSI包,或者解压zip包添加环境变量的方式),执行scala命令报错,但可以执行scala -ver ...
- Python - 安装并配置Anaconda环境
1- 简介 官网:https://www.anaconda.com/ Anaconda是一个用于科学计算的Python发行版,适用于数据分析的Python工具,也可以用在大数据和人工智能领域. 支持 ...
- 【转】CSS中的浮动和清除浮动
以下转自<CSS中的浮动和清除浮动,梳理一下!> 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目 ...
- lazy_import源码解析(原创)
参考链接: An approach to lazy importing in Python 3.7(这个是参考源) Python3.7中一种懒加载的方式(中文翻译) 原博客核心: 以前的两种惰性/延迟 ...