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操作(一)的更多相关文章

  1. JS DOM操作(创建、遍历、获取、操作、删除节点)

    创建节点 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="u ...

  2. js dom 操作

    JS的DOM操作   1DOM是文档对象模型,这种模型为树模型:文档是指标签文档,对象是指文档中每个元素:模型是指抽象化的东西. 2间隔与延迟间隔执行一段代码(函数):window.setInterv ...

  3. JS—DOM操作

    节点分为三类: 1.元素节点:标签<div></div> 2.文本节点:标签内的纯文本. 3.属性节点:标签内的属性,id或class 查找元素: getElementById ...

  4. JS DOM操作 函数 事件 阻止事件冒泡

    一 函数 1.字符串函数 s.tolowerCase( ):    -- 变小写 s.toupperCase( ):   -- 变大写 s.substr( 2 , 8 ):     -- 截取     ...

  5. JS DOM操作(五) Window.docunment对象——操作元素

    定位: var a = document.getElementByIt( "id" ) 同辈元素 var b = a.nextSibling;            -- 找 a ...

  6. JS DOM操作(二) Window.docunment对象——操作样式

    一 对元素的定位 在 js 中可以利用 id.class.name.标签名进行元素的定位 id.class  用在客户端 name  用在服务端 用 id 定位                  -- ...

  7. JS DOM操作(一) 对页面的操作

    DOM ——文档对象模型(Document Object Model)是表示和处理一个HTML或XML文档的常用方法. 在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标 ...

  8. js dom 操作技巧

    1.创建元素 创建元素:document.createElement() 使用document.createElement()可以创建新元素.这个方法只接受一个参数,即要创建元素的标签名.这个标签名在 ...

  9. js DOM操作练习

    1.有如下html,如果用js获得被选中的option的text描述(非value)<select id="select_id">    <option vlue ...

随机推荐

  1. QCustomPlot使用手冊(三)

    一.改变范围 QCustomPlot *customplot; customplot->setInteraction(QCP::iRangeDrag,true); 使控件能够拖拉. custom ...

  2. zepto.js 处理Touch事件(实例)

    处理Touch事件能让你了解到用户的每一根手指的位置,在touch事件触发的时候产生,可以通过touch event handler的event对象取到,如果基于zepto.js开发,一般是通过eve ...

  3. 标准C++的vector使用

    原文:http://blog.csdn.net/pandy1110/article/details/5963908 C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现 ...

  4. EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配

    C# mvc+EF 运行视图时出现问题:未能加载文件或程序集"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToke ...

  5. IOS开发 统计XCODE 代码行数

    如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -nam ...

  6. UIScrollView基本使用

    - (void)viewDidLoad { [super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMa ...

  7. 使用XmlReader读Xml

    XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO):而在有些场景下我们必须考虑尽可能节省内存和I ...

  8. java后台获取国际化资源文件

    //current属性,由于此属性只做赋值操作,不做取值操作,因此没有get方法 private Locale current; public void setCurrent(Locale cur) ...

  9. Android周笔记(9.8-14)(持续更新)

    本笔记记录一周内的小知识点和一些心学习的Demo. 1.PopupWindow: new 一个activity_pop_window:id为popwindow的Button,id为hello123的T ...

  10. python---连接MySQL第二页

    用python向MySQL插入值.并取出被插入行的主键. #!/usr/bin/python #!coding:utf-8 import mysql.connector from mysql.conn ...