DOM技术概述

DOM : DocumentObject Model

将HTML标记型文档,封装成对象,提供更多的属性和行为

DOM的三级模型

第一级:将标记型文档,封装成对象,提供更多的属性和行为

第二级:对原有的模型,进行了升级

第三级:XML文档封装成对象

DHTML:动态HTML dynamic 四个技术的组合体

HTML:将网页中的内容,封装到标签中

CSS:层叠样式表,提供更加丰富的页面显示效果

JavaScript:负责程序设计,JS对象,函数,循环,判断,变量

DOM:把标记封装成对象,提供更多的方法和属性

DOM树:学好DOM技术,必须要掌握节点对象,他们之间的关系

使用:

<scripttype="text/javascript">

function hide(){

//实现对div框的隐藏

//通过DOM技术,找到这个div节点对象

var divNode =document.getElementById("div_id");

//操作这个div,可以操作div的样式(CSS)

divNode.style.display="none";

}

function view(){

var divNode =document.getElementById("div_id");

divNode.style.display="";

}

</script>

<div  id="div_id"style="background-color:#3F0";>这个网页是我做的</div>

<input type="button" value="隐藏"  onclick="hide()"/><br />

<input type="button" value="显示"  onclick="view()"/>

window对象中的常用方法

代表浏览器中一个打开的窗口。

window对象,随着浏览器的打开后,这个对象就建立起来了

window对象中的alert(消息)方法

调试程序,给用户进行信息的提示

var x = 10 ;

window.alert(x+20);

window对象中的confirm方法,这个方法返回一个布尔类型值,点击的是确定按钮,将反回true

Web开发中,提示用户对数据删除时候的确认

if(window.confirm("你真的要删除吗")){

document.write("用户选择是真的要删除");

window对象中的close()方法,关闭当前的页面

window对象中的open方法,打开一个网页

window.open("Sample.htm",null,

"height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");

window对象中的打印方法print

window对象中的setInterval 每经过指定毫秒值后计算一个表达式。 定时器,定时的去执行每一个功能

window对象中的clearInterval 使用setInterval 方法取消先前开始的间隔事件。取消定时器效果

使用取消定时器方法的时候,需要传递一个ID值,这个值可以确定,取消的是哪一个定时器的效果

setInterval会返回一个整数的ID值,如果要取消这个定时器效果,可以将setInterval方法返回的ID值,传递给

clearInterval方法

例子:

varid ;

function setIntervalDemo(){

id  =setInterval("alert('定时运行')",3000);

}

function clearIntervalDemo(){

clearInterval(id);

}

document对象获取节点对象

<scripttype="text/javascript">

/*

document对象代表给定浏览器窗口中的 HTML 文档。

使用document对象,获取HTML页面中的标签节点对象,对标签节点对象进行操作

document对象获取HTML页面中的标签节点对象的三个方法

getElementById("标签节点的id属性值")

getElementsByName("标签节点的name属性")

getElementsByTagName("标签名")

*/

function documentDemo(){

var tableNode =document.getElementById("tab_id");

//表格table对象的属性 nodeName
是标签名

// alert(tableNode.nodeName);

//对表格节点对象的style属性进行设置

tableNode.style.border = "5px solid #00FF00";

}

function documentDemo2(){

var   txtNode = document.getElementsByName("txt"); //
数组

//alert(txtNode[0].nodeName);

alert(txtNode[0].value);

}

function documentDemo3(){

var tdNode =document.getElementsByTagName("td");

// alert(tdNode.length);

for(var x = 0 ; x < tdNode.length ; x++){

tdNode[x].style.background = "#FFFF0"+x;

}

}

</script>

<style type="text/css">

.onediv{

width:200px;

height:100px;

border:1px solid #F00;

margin-top:20px;

}

table,td{

border:1px solid #00F;

width:200px;

margin-top:20px;

text-align:center;}

</style>

</head>

<body>

<input type="button" value="document对象演示" onclick="documentDemo3()"/><br />

<div class="onediv">

这里是一个div区域

</div>

<input type="text" name="txt" />

<table id="tab_id" cellspacing="0">

<tr>

<td>java</td><td>php</td>

</tr>

<tr>

<td>.net</td><td>IOS</td>

</tr>

</table>

<span>这是一个span区域</span> <br />

<a href="#">这是一个超链接</a>

</body>

DIV节点的操作

<scripttype="text/javascript">

functioncreate()

{

/*

需求:给div添加一个文本节点

分析:

A:创建一个文本节点

B:将文件节点的值添加到指定的div区域中

*/

//如何创建文本节点呢?

//createTextNode

vartextNode = document.createTextNode("div区域1");

//获取指定的div

vardivNode = document.getElementById("div_1");

//div对象中有这样的一个方法:appendChild给对象追加一个子元素。

divNode.appendChild(textNode);

//我想给它添加一个超链接标签行不行呢?

//createElement为指定标签创建一个元素的实例。

varaNode = document.createElement("a");

//给a标签添加文本节点

//href 设置或获取目标 URL 或锚点

aNode.href= "http://www.baidu.com";

aNode.innerText= "百度";

//把a标签节点添加到div上

divNode.appendChild(aNode);

}

functiondeleteNode()

{

/*

需求:删除div_2的内容。

分析:

A:找到div_2节点

B:删除内容即可

*/

//找到div_2节点

//vardivNode = byId("div_2");

//childNodes返回div的所有儿子节点

//varnodes = divNode.childNodes;

//alert(nodes[0].nodeValue);

//获取文本节点

//vartextNode = divNode.childNodes[0];

//删除文本节点

//removeChild从元素上删除子结点。

//divNode.removeChild(textNode);

/*

需求:我要删除div_2这个节点。

分析:

A:先找到div_2的父节点

B:通过父节点删除div_2这个节点

*/

//vardivNode = byId("div_2");

//获取该节点的父节点

//parentNode 获取文档层次中的父对象

//alert(divNode.parentNode.nodeName);

//获取到了body节点

//varbodyNode = divNode.parentNode;

//采用删除方法即可

//bodyNode.removeChild(divNode);

//节点自己删除自己

vardivNode = byId("div_2");

//删除节点

//removeNode从文档层次中删除对象

//truechildNodes collection of the object is removed.

divNode.removeNode(true);//连同儿子都干掉 IE

//divNode.remove(true);//chrome

}

functionupdate()

{

/*

需求:用div_1把div_3给替换调用

分析:

A:获取div_1节点对象

B:获取div_3节点对象

C:用div_1节点替换div_3节点

*/

//获取div_1节点对象

vardiv1Node = byId("div_1");

//获取div_3节点对象

vardiv3Node = byId("div_3");

//替换节点

//object.replaceNode(oNewNode)

div3Node.replaceNode(div1Node);

}

functionclone()

{

/*

需求:用div_3替换div_4。但是还是要去div_3存在

分析:

A:获取div_3节点对象

B:获取div_4节点对象

C:把div_3的节点对象复制一份

D:用复制后的div_3节点替换div_4节点

*/

vardiv3Node = byId("div_3");

vardiv4Node = byId("div_4");

//复制节点呢

//cloneNode从文档层次中复制对对象的引用

vardiv3Node2 = div3Node.cloneNode(true);//表示连同子节点对象一起克隆

//替换

div4Node.replaceNode(div3Node2);

}

functionbyId(id)

{

returndocument.getElementById(id);

}

</script>

</head>

<body>

<divid="div_1">

</div>

<div id="div_2">

div区域2

</div>

<div id="div_3">

div区域3

</div>

<div id="div_4">

div区域4

</div>

<hr/>

<input type="button" value="创建并添加数据"onclick="create()" />

<input type="button" value="删除节点"onclick="deleteNode()" />

<input type="button" value="替换节点"onclick="update()" />

<input type="button" value="克隆节点"onclick="clone()" />

</body>

学习笔记-JS公开课三的更多相关文章

  1. 学习笔记-JS公开课一

    JS公开课笔记 没特别说明就是和Java语言一样. JS变量:弱类型语言 1.在JS中,true表示1,false表示0.和Java不一样. 2. var y: 提示undefined: 3.如果al ...

  2. 学习笔记-JS公开课二

    typeof运算符的使用 JS中内置对象Array/Date/Math/String可以看成引用类型 做如下测试: <scripttype="text/javascript" ...

  3. 前端学习:学习笔记(JS部分)

    前端学习:学习笔记(JS部分) 前端学习:JS学习总结(图解)    JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 新建步骤 <body ...

  4. Java虚拟机内存溢出异常--《深入理解Java虚拟机》学习笔记及个人理解(三)

    Java虚拟机内存溢出异常--<深入理解Java虚拟机>学习笔记及个人理解(三) 书上P39 1. 堆内存溢出 不断地创建对象, 而且保证创建的这些对象不会被回收即可(让GC Root可达 ...

  5. amazeui学习笔记--js插件(UI增强)--警告框Alert

    amazeui学习笔记--js插件(UI增强)--警告框Alert 一.总结 1.警告框基本样式:用am-alert声明div容器, <div class="am-alert" ...

  6. amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown

    amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown 一.总结 1.am-dropdown(及其孩子):控制下拉列表的样式 2.data-am-dropdown(及其孩子):控 ...

  7. amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse

    amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse 一.总结 注意点: 1.data-am-collapse:这个东西就是展开折叠事件 2.am-collapse(包括其下属 ...

  8. amazeui学习笔记--js插件(UI增强2)--按钮交互Button

    amazeui学习笔记--js插件(UI增强2)--按钮交互Button 一.总结 1.按钮loading状态: <button type="button" class=&q ...

  9. JavaScript学习笔记——JS中的变量复制、参数传递和作用域链

    今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...

随机推荐

  1. GC机制

    java虚拟机中的垃圾回收机制是,一个类,当该对象没有更多的应用指向它时,就会被垃圾回收器给回收,从而释放资源.该机制不可以程序员手动调用去回收某个对象,系统自动会去调用,当然程序员可以建议垃圾回收器 ...

  2. 关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考

    原文链接 http://blog.csdn.net/voo00oov/article/details/50433672 java中interface中定义变量都是"public static ...

  3. Spring中@Autowired与@Resource的区别

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...

  4. java总结之基础类型与常量池

    1.基础类型有byte short int long char boolean float double八种. 其中byte short int long char 的包装类型是存放在常量池(用来维护 ...

  5. EM vs REM vs PX,为什么你不应该”只用px“”

    Actually this artical is from other person's opnion ,i just put it into chinese,and this means a ver ...

  6. hibernate实体对象的三种状态:自由状态,持久状态,游离状态.

    自由态与游离态的区别: 当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态,游离对象和自由对象的最大区别在于,游离对象在数据库中可能还存在一条与它 对应的记录,只是现在这个游离对 ...

  7. pupeteer初体验

    官方文档: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions puppet ...

  8. Springboot项目maven多模块拆分

    多模块拆分的必要性 使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种 ...

  9. js改变dom对象样式

    object.style.display = value; objcet对象必须是确定单个对象. 若以class名和标签名查找,需要指定对象集合中的第几个.

  10. AsyncLocal 与 async await

    大家来看一张图 先猜猜看为什么会这样 关于async await的原理 建议查看 https://blog.csdn.net/brook_shi/article/details/50803957 这篇 ...