js——DOM操作(一)
DOM:Document Object Model 文档对象模型
文档:html页面
文档对象:页面中元素
文档对象模型:定义 为了能够让程序(js)去操作页面中的元素
DOM会把文档看作是一棵树,同时定义了很多方法来操作这颗树中的每一个元素(节点)
DOM节点
如:
getElementById
getElementByTagName
document
document.body
...
//***************************************
childNodes : 只读属性 子节点列表集合
标准下:包含了文本和元素类型的节点,也包含非法嵌套的子节点
非标准下:只包含元素类型的节点,ie7以下不会包含非法嵌套的子节点
childNodes只包含一级子节点,不包含后辈孙级以下的节点
DOM节点类型有12种,比较重要的有:
元素类型 | nodeType |
元素节点 | 1 |
属性节点 | 2 |
文本节点 | 3 |
注释节点 | 8 |
文档节点 | 9 |
attributes:只读属性 属性列表集合
children:只读属性 子节点列表集合
标准下:只包含元素类型的节点
非标准下:只包含元素类型的节点
firstChild:只读属性 第一个子节点
标准下:firstChild会包含文本类型的节点
非标准下:只包含元素节点
firstElementChild:只读属性 第一个子节点
标准下获取第一个元素类型的子节点
非标准下不支持这个属性
lastChild || lastElementChild 最后一个子节点
nextSibling || nextElementSibling 下一个兄弟节点
previousSibling || previousElementSibling 上一个兄弟节点
parentNode:只读属性 当前节点的父级节点
标准下和非标准下都正常!
offsetParent:只读属性 离当前元素最近的一个有定位属性的父节点
如果没有定位父级,默认是body
ie7以下,如果当前元素没有定位默认是body,如果有定位则是html
ie7以下,如果当前元素的某个父级触发了layout,那么offsetParent就会被指向到触发了layout特性的父节点上
offsetLeft[Top]:只读属性 当前元素到定位父级的距离(偏移值),即到当前元素的offsetParent的距离
如果没有定位父级
offsetParent -> body
offsetLeft -> html (ie7以下有可能)
如果有定位父级
ie7以下:如果自己没有定位,那么offsetLeft[Top]是到body的距离
如果自己有定位,那么就是到定位父级的距离
其他:到定位父级的距离
width height //**不存在兼容问题
style.width:样式宽
clientWidth:可视区宽 (包括padding)
offsetWidth:占位宽(包括padding和border)
//**************************
操作元素属性的方式:
元素.属性名 //可赋值,可获取值
元素[属性名] //可赋值,可获取值
两者区别:单属性名是变量的时候,不能通过“.”的方式,必须要用“[]”
getAttribute(属性名); 方法,获取指定元素的指定属性的值
setAttribute(属性名,属性值);方法,给指定元素指定的属性设置值
removeAttribute(属性名称); 方法,移除指定元素的指定属性
/**
1、用.和[]的形式无法操作元素的自定义属性
getAttribute可以操作元素的自定义属性 (无兼容问题)
2、getAttribute可以获取元素属性实际的值,如img的src属性值,获取的是设定的实实在在的值(ie7以下还是会返回资源 的绝对路径)
**/
document.createElement(标签名称); 创建元素
父级.removeChild(要删除的元素); 删除元素
父级.appendChild(要添加的元素) 方法 追加子元素
父级.insertBefore(新的元素,被插入的元素) 方法 在指定元素前面插入一个新元素
在ie下如果第二个参数的节点不存在,会报错
在其他标准浏览器下如果第二个参数的节点不存在,则会以appendChild的形式进行添加
父级.replaceChild(新节点,被替换节点) 替换子节点
/*
appendChild,insertBefore,replaceChild都可以操作动态创建出来的节点,也可以操作已有节点
*/
js——DOM操作(一)的更多相关文章
- JS DOM操作(创建、遍历、获取、操作、删除节点)
创建节点 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="u ...
- js dom 操作
JS的DOM操作 1DOM是文档对象模型,这种模型为树模型:文档是指标签文档,对象是指文档中每个元素:模型是指抽象化的东西. 2间隔与延迟间隔执行一段代码(函数):window.setInterv ...
- JS—DOM操作
节点分为三类: 1.元素节点:标签<div></div> 2.文本节点:标签内的纯文本. 3.属性节点:标签内的属性,id或class 查找元素: getElementById ...
- JS DOM操作 函数 事件 阻止事件冒泡
一 函数 1.字符串函数 s.tolowerCase( ): -- 变小写 s.toupperCase( ): -- 变大写 s.substr( 2 , 8 ): -- 截取 ...
- JS DOM操作(五) Window.docunment对象——操作元素
定位: var a = document.getElementByIt( "id" ) 同辈元素 var b = a.nextSibling; -- 找 a ...
- JS DOM操作(二) Window.docunment对象——操作样式
一 对元素的定位 在 js 中可以利用 id.class.name.标签名进行元素的定位 id.class 用在客户端 name 用在服务端 用 id 定位 -- ...
- JS DOM操作(一) 对页面的操作
DOM ——文档对象模型(Document Object Model)是表示和处理一个HTML或XML文档的常用方法. 在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标 ...
- js dom 操作技巧
1.创建元素 创建元素:document.createElement() 使用document.createElement()可以创建新元素.这个方法只接受一个参数,即要创建元素的标签名.这个标签名在 ...
- js DOM操作练习
1.有如下html,如果用js获得被选中的option的text描述(非value)<select id="select_id"> <option vlue ...
随机推荐
- zabbix client安装配置执行
1 创建zabbix 用户 groupadd zabbix; useradd -g zabbix zabbix; passwd zabbix; 两次输入password 2 下载获得zabbix的包, ...
- google 推荐 android 像素统一使用dip,字体统一使用sp
像素统一使用dip,字体统一使用sp
- 代理方法keywordAction与Fun的使用
代理是一种特殊的,指向某个方法模块所在的地址.一般来讲,那个方法模块,能够是一个普通的方法,很多其它的时候,是一团匿名的lamda表达式,即一个匿名方法.如今简单理解一下代理的简写方式,即Action ...
- Sequence one(hdu2610dfs+去重)
题目:有一个数列N,和一个数字k,输出该数列的前k个子序列,如果k大于N的所有子序列,输出所有符合要求的序列,序列要求不能是递减序列 比如: 3 5 1 3 2 的前五个序列为 1 3 2 1 3 1 ...
- [代码]Java后台推送消息到IOS前端
PayLoad payLoad = new PayLoad(); payLoad.addAlert("test"); //手机端的提示消息 payLoad.addBadge( ...
- UVA 1395 Slim Span
题意: 要求的是所有生成树中最大边与最小边差值最小的那个. 分析: 其实可以利用最小瓶颈生成树,就是最小生成树这一性质,枚举原图的最小边,然后找相应生成树的最大边 代码: #include <i ...
- 解决VS2010批量替换时经常由于内存较低而导致VS2010自动关闭的问题
尊重原著作:本文转载自http://www.cnblogs.com/Sharping/p/3165527.html 情况描述 在使用VS2010 开发Web应用程序的时候,批量替换时经常卡死关闭. 一 ...
- Oracle Dataguard三种保护模式概述(转)
Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.max protection这三种模式. 以下是来自Oracle文档的摘要信 ...
- DW 图片不显示的情况 ———网页只显示字不显示图片的情况 目录下的图片名被改动不显示图片的情况
例子1-- 酒瓶子 alt 在不现实图片的情况下显示汉字 图文效果展示 alt 1************************* 语句---- <body> < ...
- C++ extern "C",C与C++的区别
1. C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数.但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同. 2 ...