`
senny
  • 浏览: 16280 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

第五、文档对象模型DOM

阅读更多

第五章 文档对象模型

 

一、理解DOM

从一个简单的HTML文档理解树的概念:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM TEST</title>
</head>
<body>
<h1>DOM TEST HEADING</h1>
<hr />
<!--Just a comment-->
<p>A paragraph of <em>text</em> is just an example</p> 
<ul id="ul"><li><a href="#">Yahoo!</a></li></ul>
</body>
</html>
 



 

 

二、DOM中常用属性及方法:(如未特别举出文档事例,均采用文章开头的HTML文档,测试在chrome中通过:JavaScript控制台)

(一)nodeName:String 文本节点的nodeName总是#text

document.getElementById("ul").nodeName; // UL nodeName返回始终为大写)

 

(二)nodeValue:String 通常用于文本节点(元素节点返回为null

document.getElementsByTagName("title")[0].firstChild.nodeValue //DOM TEST

 

(三)nodeType:Number 节点类型常量值

DOM浏览器中:

元素节点类型:Node.ELEMENT_NODE 1

文本节点类型:Node.TEXT_NODE 3

document.getElementById("ul").nodeType; // 1

 

(四)firstChild:Node 指向子节点列表中第一个节点

document.getElementsByTagName("title")[0].firstChild.nodeName; //#text

 

(五)lastChild:Node 指向子节点列表中最后个节点

 

(六)childNodes:NodeList 所有子节点列表

var doc = document.getElementById("ul").childNodes;for(d in  doc){alert(doc[d].nodeName)};

 

(七)parentNode:Node 返回父节点

document.getElementById("ul").parentNode.nodeName; //BODY

 

(八)previousSibling:Node 返回前一个兄弟节点

document.getElementsByTagName("em")[0].previousSibling.nodeValue;//A paragraph  of 

 

(九)nextSibling:Node 返回下一个兄弟节点

document.getElementsByTagName("em")[0].nextSibling.nodeValue; 

// is just  an  example

 

(十)hasChildNodes():Boolean 判断是否包含子节点

document.getElementsByTagName("em")[0].nextSibling.hasChildNodes(); //false

 

(十一)appendChild(node) 

var text = document.createTextNode("test"); //创建一个文本节点

var li = document.createElement("li"); //创建一个元素

li.appendChild(text); //li元素追加子节点text

document.getElementById("ul").appendChild(li); //ul追加子节点li

 

(十二)removeChild(node)

document.getElementById("ul").removeChild(document.getElementById("ul").lastChild);

 

(十三)insertBefore(new,old) old前插入一个new节点

var text = document.createTextNode("test");

var li = document.createElement("li");li.appendChild(text);

var doc = document.getElementById("ul");

doc.insertBefore(li,doc.firstChild);

 

(十四)cloneNode() 无参:克隆节点本身,浅层克隆;true:深层克隆

//深层克隆 所有子节点

var ul = document.getElementById("ul");

var cloneNode = ul.cloneNode(true);

ul.appendChild(cloneNode);

//浅层 仅元素本身

var li = document.getElementById("ul").firstChild;

var c = li.cloneNode();

document.getElementById("ul").appendChild(c); //只有<li>

 

(十五)innerHTML 特别的tableselect元素不支持这样的赋值

var html = document.getElementById("ul").innerHTML;

alert(html);

 

(十六)getElementById(); 通过ID获取元素

 

(十七)getElementsByTagName() 通过元素标签名获取元素(数组)

 

(十八)getElementsByName() 通过元素name获取元素,通常用于radiocheckbox

 

三、实例:

通过两个按钮添加删除元素,输入框内容为添加内容

<script type="text/javascript">
window.onload = init;
var ul;
function init(){
document.getElementsByTagName("input")[1].onclick = add;
document.getElementsByTagName("input")[2].onclick = remove;
ul = document.getElementsByTagName("ul")[0];
}
function add(){
var txt = document.getElementsByTagName("input")[0].value;
if(txt!=""){
var liText = document.createTextNode(txt);
var li = document.createElement("li");
li.appendChild(liText);
ul.insertBefore(li,ul.firstChild);
document.getElementsByTagName("input")[0].value = "";
}
}
function remove(){
/*if(ul.hasChildNodes()){
ul.removeChild(ul.firstChild);
}*/
var li = document.getElementsByTagName("li");
if(li.length>0){
ul.removeChild(li[li.length-1]);
}
}
</script>
</head>
<body>
<ul>
<li>文字1</li>
<li>文字2</li>
</ul>
<div>
输入<input type="text" /><br />
<input type="button" value="+" />
<input type="button" value="-" />
</div>
 

代码中多行注释的部分,在FF类型浏览器中需要点击两次删除才真正的删除,这是因为

<ul>
<li>文字1</li>
<li>文字2</li>
</ul>
 

这几行代码是敲入的,每行有“\n”,IE自动忽略换行,而FF不忽略,点击第一次删除是删除换行符,第二次才是删除LI

  • 大小: 27.1 KB
0
0
分享到:
评论

相关推荐

    JavaScript入门教程

    第5章 文档对象模型 DOM 第6章 String Math Array等数据对象 第7章 Window及相关顶级对象 第8章 Document对象"&gt;该资源为8个PDF文档教程 适合JS开发初学者 具体内容为 第1章 JavaScript语言概述 第2章 JavaScript...

    第一讲_第5课__JavaScript_DOM对象模型编程.doc

    第一讲_第5课__JavaScript_DOM对象模型编程

    xml 学习课件

    第1章引论.ppt ...第3章XML基础.ppt 第4章XML文档类型定义.ppt 第5章XMLSchema结构.ppt 第6章层叠样式表.ppt 第7章XML数据源对象.ppt 第8章XSL转换.ppt 第9章XML文档对象模型-DOM.ppt 第10章XML编程技术.ppt

    JavaScript+DOM编程艺术

    本书在简洁明快地讲述JavaScript和DOM的基本 ...第5章 JavaScript编程原则和良好习惯  5.1 不要误解JavaScript  5.2 预留退路  5.3 向CSS学习  5.4 分离JavaScript  5.5 向后兼容性  5.6 小结

    JavaScript+DOM编程艺术(二)

    本书在简洁明快地讲述JavaScript和DOM的基本 ...第5章 JavaScript编程原则和良好习惯  5.1 不要误解JavaScript  5.2 预留退路  5.3 向CSS学习  5.4 分离JavaScript  5.5 向后兼容性  5.6 小结

    JavaScript+DOM编程艺术(一)

    本书在简洁明快地讲述JavaScript和DOM的基本 ...第5章 JavaScript编程原则和良好习惯  5.1 不要误解JavaScript  5.2 预留退路  5.3 向CSS学习  5.4 分离JavaScript  5.5 向后兼容性  5.6 小结

    JavaScript:DOM编程艺术(第2版)

    《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以用户为中心等。这些概念对于任何前端web 开发工作都非常重要。本书将...

    javascript脚本化文档

    一个文档对象模型或者说DOM就是一个API,它定义了如何访问组成一个文档的对象。W3C定义了一个标准的DOM,它理所当然地在所有现代Web浏览器中得到了很好的支持。不幸的是,情况并非总是如此。客户端JavaScript编程的...

    悟透JavaScript

    目录: 第一部 JavaScript真经 ...5 妆扮DOM对象 6 响应DOM事件 7 播放声音 8 别向复杂低头 9 珍珑棋局 第三部 点化AJAX 1 叩问AJAX 2 直捣AJAX 3 ASP.NET AJAX简介 4 AJAX与WebService .....

    Javascript 入门教程

    第5章 文档对象模型(DOM).pdf 第6章 String、Math、Array等数据对象.pdf 第7章 Window及相关顶级对象.pdf 第8章 Document对象.pdf 内容 绝对清楚 当然了 因为我只是个初学者,感觉很适合初学者,拿出来和大家共享一下,...

    jQuery开发技术详解

    第3章 文档对象模型(DOM) 第4章 工欲善其事,必先利其器——开发工具 第5章 jQuery快速上手 第6章 使用选择器获得要操作的元素 第7章 操作得到的元素 第8章 使用jQuery进行DOM操作 第9章 jQuery中的事件处理 第10...

    JavaScript基础和实例代码

    第5章 文档对象模型(DOM) 5.1 DOM概述 5.1.1 基本对象模型 5.1.2 Netscape Navigator浏览器扩展 5.1.3 Internet Explorer浏览器扩展 5.1.4 Opera、Mozilla和其他浏览器扩展 5.1.5 W3C DOM 5.1.6 W3C DOM规范级别 5.2...

    源文件程序天下JAVASCRIPT实例自学手册

    第5章 文档对象模型(DOM) 5.1 DOM概述 5.1.1 基本对象模型 5.1.2 Netscape Navigator浏览器扩展 5.1.3 Internet Explorer浏览器扩展 5.1.4 Opera、Mozilla和其他浏览器扩展 5.1.5 W3C DOM 5.1.6 W3C DOM规范级别 5.2...

    Javascript 高级编程第2版PDF part5

    从颇具深度的javascript语言基础到作用域(链),从引用类型到面向对象编程,从极其灵活的匿名函数到闭包的内部机制,从浏览器对象模型(bom)、文档对象模型(dom)到基于事件的web脚本设计,从xml(fax)到ajax及json,从...

    javascript入门教程

    第1章 JavaScript语言概述 第2章 JavaScript语言基础 第3章 JavaScript事件处理 ...第5章 文档对象模型(DOM) 第6章 String、Math、Array等数据对象 第7章 Window及相关顶级对象 第8章 Document对象

    [XML入门经典(第4版)].(Beginning.XML.4th.Edition).(美)亨特,(美)拉夫特,(美)福思特.扫描版.pdf

    第11章 文档对象模型(DOM) 第12章 XML简单API 第Ⅵ部分 通信 第13章 RSS、Atom和内容聚合 第14章 Web服务 第15章 SOAP和WSDL 第16章 Ajax 第Ⅶ部分 显示 第17章 样式表(CSS) 第18章 XHTML语言 第19章 可缩放矢量图形...

    从零开始学JavaScript 源代码

    第5章 文档对象模型(DOM) 第6章 String、Math、Array等数据对象 第7章 Window及相关顶级对象 第8章 Document对象 第9章 HTML元素对象 第二篇 JavaScript进阶篇 第10章 正则表达式 第11章 客户端与服务器端通信 第...

    js入门教程(共8个pdf文件)

    一共分八章讲解:(pdf格式) 第1章 JavaScript语言概述 第2章 JavaScript语言基础 ...第5章 文档对象模型(DOM) 第6章 String、Math、Array等数据对象 第7章 Window及相关顶级对象 第8章 Document对象

Global site tag (gtag.js) - Google Analytics