第一部分 dom

node类型

nodeType 属性

nodeType 属性返回节点的类型。nodeType 是只读的。

比较重要的节点类型有:

元素类型

NodeType

元素

1

属性

2

文本

3

注释

8

文档

9

if  (someNode.nodeType == 1)  { //适用于所有浏览器

...

}

nodeName 属性

nodeName 属性规定节点的名称。

- nodeName 是只读的

- 元素节点的 nodeName 与标签名相同

- 属性节点的 nodeName 与属性名相同

- 文本节点的 nodeName 始终是 #text

- 文档节点的 nodeName 始终是 #document

注释:nodeName 始终包含 HTML 元素的大写字母标签名。

if  (someNode.nodeType == 1)  {

value = someNode.nodeName   //nodeName的值是元素的标签名

}

nodeValue 属性

nodeValue 属性规定节点的值。

- 元素节点的 nodeValue 是 undefined 或 null

- 文本节点的 nodeValue 是文本本身

- 属性节点的 nodeValue 是属性值

每个节点都有一个childNodes属性,其中保存着一个NodeList对象。(NodeList是一个类数组对象,不是Array的实例)

someNode.firstChild =someNode.childNodes[0] = someNode.childNodes.item(0)

someNode.lastChild = someNode.childNodes[someNode.childNodes.length-1]

hasChildNodes() //检测有没有子节点

var returnNode = someNode.appendChild(someNode.firstChild) //在第一个子节点后append

insertBefore(newNode, null) //和append()方法一致

insertBefore(newNode, someNode.firstChild) //在特定位置添加节点

replaceChild(newNode, someNode.firstChild) //替换节点

removeChild(someNode.firstChild)  //移除节点

replaceChild(newNode, someNode.childNodes[someNode.length-2])  //删除倒数第二个元素

cloneNode()  //接收一个参数,true(为深复制,复制节点以及子节点树),false(只复制节点本身)

<ul>

<li>item1</li>

<li>item2</li>

<li>item3</li>

</ul>

var deepList =mylist.cloneNode(true)

console.log(deepList.childNodes.length)   //3(ie<9) 或7(其他浏览器)

[text, li, text, li, text, li, text]

console.log(deepList.children.length)  //3

[li, li, li]

console.log(deepList.childNodes.length) //

var shallowList =mylist.cloneNode(false)

console.log(shallowList .childNodes.length)   //0

IE9之前的版本不会为空白符创建节点,cloneNode()方法不会复制dom节点的javascript属性,例如事件处理,但ie有bug,建议复制前移除事件

Document类型

var allElements = document.getElementByTagName("*") //所有元素

document.forms document.images

document.links   //带有href特性的<a>元素

Element类型

1.HTML元素

var div= document.getElementById("myDiv")

console.log(div.id)

console.log(div.className)

console.log(div.title)

console.log(div.dir)

2.取得特性

getAttribute()  setAttribute()  removeAttribute()

<div id="myDiv" align="left" my_special_attribute="hello!"

console.log(div.my_special_attribute) //undefined (ie除外)

div.mycolor = "red"

console.log(div.getAttribute("mycolor")) //null (ie除外)

DOM扩展

选择符

querySelector() querySelectorAll()   //ie8+

matchesSelector() //接受参数,css选择符,如果调用元素与该选择符匹配,返回true,否则,返回false   p288页

与类相关的扩充

getElementsByClassName() //ie9+ 在document对象上调用始终会返回与类匹配的所有元素,在元素上调用改方法只会返回后代元素中匹配的元素

//删除"disabled"类

div.classList.remove("disabled")

//添加"current"类

div.classList.add("current")

//切换"user"类

div.classList.toggle("current")

//确定元素中是否包含既定类名

if (div.classList.contains("bd"))

Firefox 3.6+和Chrome

location修改URL的方法

初始url为http://www.baidu.com/wechart/

将url修改为 http://www.baidu.com/#section1

location.hash = "#section1";

将url修改为 http://www.baidu.com/wechart/?q=javascript

location.search= "?q=javascript";

将url修改为 http://www.yahoo.com/wechart/

location.hostname= "www.yahoo.com";

将url修改为 http://www.yahoo.com/mydir/

location.pathname= "mydir";

将url修改为 http://www.yahoo.com:8080//wechart

location.port = 8080;

公司内部的一篇关于dom方法的分享的更多相关文章

  1. 公司内部培训SQL Server传统索引结构PPT分享

    公司内部培训SQL Server传统索引结构PPT分享 下载地址 http://files.cnblogs.com/files/lyhabc/SQLServer%E4%BC%A0%E7%BB%9F%E ...

  2. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  3. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

  4. 关于公司内部的Nuget服务

    简介 公司内部搭建的Nuget服务,私有安全,局域网,速度快. 使用方法 VS -> 工具 -> 库程序包管理器 -> 程序包管理器设置 -> 程序包源 -> 新增以下配 ...

  5. before(),after(),prepend(),append()等新DOM方法简介

    一.DOM API也在不断升级 web前端标准一直在不断升级,比方说,说了很多年的HTML5.CSS3,以及天天见的ES6. 然后,似乎就没有然后了.实际上,除了HTML5/CSS3/ES6+,关于D ...

  6. Rafy 领域实体框架 - 公司内部培训视频

    本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架.所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看.现在把视频放到园里来分享下,有兴趣的朋友可以看看,有 ...

  7. ASP.NET MVC学前篇之扩展方法、链式编程

    ASP.NET MVC学前篇之扩展方法.链式编程 前言 目的没有别的,就是介绍几点在ASP.NETMVC 用到C#语言特性,还有一些其他琐碎的知识点,强行的划分一个范围的话,只能说都跟MVC有关,有的 ...

  8. 深入理解javascript函数系列第三篇——属性和方法

    × 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...

  9. 使用mvvm框架avalon开发公司内部运营管理系统的一些心得

    接触avalon差不多有一年时间了,当时是看前端大牛司徒正美的博客才了解到还有这么一个高大上的玩意,然后就加入了avalon的讨论群.从群里零零散散的了解了avalon的一些特性,感觉很强大,感觉思想 ...

随机推荐

  1. SSISDB7:查看当前正在运行的Package

    在项目组中做ETL开发时,经常会被问到:“现在ETL跑到哪一个Package了?” 为了缩短ETL运行的时间,在ETL的设计上,经常会使用并发执行模式:Task 并发执行,Package并发执行.对于 ...

  2. VS2015签名丢失解决办法

    废话少说,直接上问题和解决办法, 问题:VS2015安装后运行程序会发现这个问题 解决办法 1.下载SignTool.exe签名文件 2.将签名文件放入 C:\Program Files (x86)\ ...

  3. Vue.js学习笔记(8)拖放

    小颖在目前负责的项目中,负责给同事提供所需组件,在这期间,我们家大颖姐姐让我 写个拖拽组件,一开始我是用click实现,先将你要拖拽的dom点一下,然后再点你要放的位置,这个dom再通过小颖写的方法, ...

  4. JAVA基础代码分享--学生成绩管理

    问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10  等级为’A’   成绩>=最高分-20  等级为’B’ 成绩>=最高分-30  等级为’C’ ...

  5. webapp应用---cordova.js 3.7.0插件安装总结

    今天是2014年的最后一天,年终总结什么的就不写了.记录一下今天的工作内容.如果不知道phoneGap,那么就不需要往下看了,phoneGap现在已经叫cordova了,叫什么不重要,重要的是它对we ...

  6. 云计算之路-阿里云上:从ASP.NET线程角度对“黑色30秒”问题的全新分析

    在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释. “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增 ...

  7. JS详细入门教程(上)

    首先,我们看一下DOM级别和兼容性: 之前好像在某本上看到说DOM有0级,实际上,DOM0级标准是不存在的.DOM有1.2.3三个级别.DOM1级由两个模块组成(DOM Core和DOM HTML), ...

  8. 相克军_Oracle体系_随堂笔记016-参数文件及数据库的启动和关闭

    参数文件: spfile<SID>.ora    动态参数文件,是二进制文件,9i以后引入并建议使用 init<SID>.ora    静态参数文件,是文本文件 动态参数,部分 ...

  9. 解决CHROME中画布中无法显示图片的方法

    最终效果图如下 我按照W3SCHOOL里面的方法,代码如下 <!DOCTYPE html> <html> <body> <script type=" ...

  10. [转载]C/C++框架和库

    C/C++框架和库 装载自:http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419 值得学习的C语言开源项目 Webbench Web ...