JavaScript 基础 学习 (二)
JavaScript 基础 学习
节点属性
每一个节点都有自己的特点
这个节点属性就记录着属于自己节点的特点
1. nodeType(以一个数字来表示这个节点类型)
语法:节点.nodeType
得到: 一个数字,代表着这个节点的类型
元素节点:1
属性节点:2
文本节点:3
注释节点:8
例如:判定节点是不是元素节点,只要判断他的 nodeType === 1就可以了
2.nodeName(节点名称)
语法: 节点.nodeName
得到: 一个名称,属于这个节点的名称
元素节点:大写标签名(全是大写)
属性节点:属性名
文本节点:#text (所有文本节点的名字都叫做 #text )
注释节点:#comment (所有的注释节点名字都叫做 #comment)
例如: 将来我获取到某一个节点,确定了他是原元素节点,但是不确定是按一个元素
我只有判读他的 nodeName === 'DIV' , 就能确定他是一个 div 标签
3.nodeValue(节点的值)
语法: 节点.nodeValue
得到: 一个值,这个节点存储的值
元素节点:null ,元素节点没有值
属性节点:属性的值
文本节点:这个节点所代表的文本内容(包括换行和空格)
注释节点:这个注释里面所写的文本内容(包括换行和空格)
节点操作 - 创建节点
创建节点 - 通过 JS 代码创建一个标签
1.document.createElement() - 在文档流里面创建一个节点
语法: document.createElement ('你要创建的元素节点名称小写就行')
返回值: 就是一个创建好的元素节点
和你在页面上获取的元素节点没有任何区别
只不过创建出来的节点没有在页面上
2.document.createTextNode() - 文档流里面创建一个文本节点
语法: document.createTextNode ('你要创建的文本内容')
返回值: 就是一个文本节点
和你在页面上获取来的文本节点一样,没有区别
只不过一个在页面上,一个是我凭空捏造
节点操作 - 插入节点
就是把一个节点添加到另一个节点里面作为子节点使用
注意:一般都是把节点添加到某一个元素节点里面
1.appendChild()
作用: 向某一个父节点内追加一个子节点
语法: 父节点.appendChild (要追加的子节点)
结果: 子节点被添加到父节点里面了,排在所有节点的最后一个位置
2.insertBefore()
作用: 向某一个父节点内插入一个子节点,插入到本身的某一个子节点的前面
语法: 父节点.insertBefore (你要插入的节点,哪一个已经存在的子节点前面)
结果: 就是把该节点插入到父节点的指定节点前面
节点操作 - 删除节点
就是把一个已经存在的节点移出
1.removeChild()
作用: 从父节点里面移除某一个子节点
语法: 父节点.removeChild (你要移出的子节点)
结果: 该节点里面不再有这个子节点了
2.remove()
作用: 把自己移出
语法: 要移除的节点.remove ()
结果: 自己直接被移除掉
节点操作 - 替换节点
就是用某一个节点,去替换一个已经存在的节点
1.replaceChild()
作用: 就是把父节点下的某一个子节点替换成新节点
语法: 父节点.replaceChild (新节点,旧节点)
结果: 使用新节点,把旧几替换掉
节点操作 - 克隆节点
把一个已经存在的节点(可以是页面里面获取了,也可以是自己创建的)
1.cloneNode()
作用: 把节点复制一模一样的
语法: 要克隆的节点.cloneNode (参数选填)
默认值是 false ,表示不克隆后代节点
可以选填 true ,表示克隆所有后代节点
返回值: 就是一个已经被克隆好的节点
克隆出来的标签不在页面上,是在 JS 代码里面(在内存里面)
获取元素的非行内样式
1.getComputedStyle() 方法
标准浏览器使用(高版本浏览器)
作用: 获取元素的样式(包含行内样式和非行内样式)
语法: window.getComputedStyle (你要获取样式的元素)
返回值: 是一个对象,里面包含所有元素目前的样式
只读的对象,只能获取元素的样式
你需要哪一个样式的时候,直接在对象里面获取某一个样式的值
2.currentStyle 属性
IE 低版本使用(IE 6 7 8 )
语法: 要获取样式的元素.currentStyle (包含行内样式和非行内样式)
得到: 就是一个对象,里面包含元素多有的目前的样式
兼容: 不能用 || 来兼容
需要用 if else 来判断
获取元素偏移量 - 参考系
一个元素的偏移量参考元素就是这个元素的 定位父级
1.offsetParent 属性
作用: 获取元素的偏移量参考父元素
语法: 元素.offsetParent
得到: 就是你这个元素获取偏移量的时候是根据谁来的
获取元素的偏移量 - 元素偏移量
1.offsetLeft
语法: 元素.offsetLeft
得到: 元素相对于参考元素左侧的距离
2.offsetTop
语法: 元素.offsetTop
得到: 元素相对于参考元素上边的距离
获取元素尺寸
获取元素在 页面 上的 占地面积
display:none; 那么获取不到(消失不占位)
visibility:hidden;那么可以获取到(消失占位)
opacity:0; 那么乐意获取到(不显示,但是占位)
注意: 获取到的是没有单位的数字,可以直接参与运算
1.offsetWidth 和 offsetHeight
获取到的是元素的 边框 + 内边距 + 内容 区域的尺寸
offsetWidth 是宽度
offsetHeight 是高度
2.clienWidth 和 clienHeight
获取到的是元素的 内边距 + 内容 区域的尺寸
clienWidth 是宽度
offsetHeight 是高度
获取浏览器窗口大小
获取浏览器可视窗口大小
之前我们学过一组属性, innerWidth 和 innerHeight
它们获取到的是包含滚动条的尺寸
今天我们再学习一下获取窗口尺寸的另外的办法
获取到的是不包含滚动条的尺寸
其实你要是获取不包含滚动条的尺寸
就是在获取页面的 占地面积
1. document.documentElement.clientWidth
=> 页面的宽度(不包含滚动条)
2. document.documentElement.clientHeight
=> 页面的高度(不包含滚动条)
JavaScript 基础 学习 (二)的更多相关文章
- JavaScript基础学习(二)—JavaScript基本概念
一.语法 1.区分大小写 JavaScript是一种弱类型的脚本语言.它区分大小写,变量名test与Test表示两个完全不同的变量. 2.标识符 所谓标识符就是变量.函数.属性的 ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- JavaScript基础笔记二
一.函数返回值1.什么是函数返回值 函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Go基础学习(二)
数组[array] 数组定义[定义后长度不可变] 12 symbol := [...]string{USD: "$", EUR: "€", GBP: " ...
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
随机推荐
- python基础003----标准数据类型
一.标准数据类型 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要开发者主动去说明它的类型,系统会自动识别.可以用type(变量名)来查看变量的类型.常见的变量类型 ...
- 深度学习中环境配置的一些经验总结(conda 常用命令)
前两个月参加了学校的国创项目,和一个外院的同学组队.课题是基于深度学习的新闻图片中网络暴力元素的检查. 6月末最后一门试考完,正式开始暑假,便有了大把时间搞这个国创项目(反正没有其他事干).两个组凑钱 ...
- rust 生命周期2
之前定义的结构体,都是不含引用的. 如果想定义含引用的结构体,请定义生命周期注解 #[warn(unused_variables)] struct ImportantExcerpt<'a> ...
- C常见错误小记(未完)
1.指针与NULL 下面这段代码会报错: { int *a = NULL; *a = ; printf("%d",*a); } 指针初始化为NULL,还是没有分配内存,所以会报错. ...
- 版本控制工具 GIT入门教程
GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// gi ...
- Spring Boot Admin 2.1.4最新实战教程
环境的搭建 首先搭建eruka的注册中心 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr ...
- 数据库char varchar nchar nvarchar,编码Unicode,UTF8,GBK等,Sql语句中文前为什么加N(一次线上数据存储乱码排查)
背景 公司有一个数据处理线,上面的数据经过不同环境处理,然后上线到正式库.其中一个环节需要将数据进行处理然后导入到另外一个库(Sql Server).这个处理的程序是老大用python写的,处理完后进 ...
- CentOS下安装python3环境及pypy环境
安装前基础环境 1. win7虚拟机CentOS7.6系统 2. 网络环境通过NAT方式 3. 已经配置到yum仓库并系统自带有python2.7 安装前准备 1. python3.6.5源码包:ht ...
- Python3笔记009 - 2.6 输入和输出
第2章 python语言基础 python语法特点 保留字与标识符 变量 数据类型 运算符 输入和输出 2.6 输入和输出 1.input()函数 name = input("请输入姓名:& ...
- 重学 Java 设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 文无第一,武无第二 不同方向但同样努力的人,都有自身的价值和亮 ...