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. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 操作符重载和隐式类型转换

    C#中,某些类型会定义隐式类型转换和操作符重载.Unity中,有些对象也定义了隐式类型转换和操作符重载.典型情况有:UnityEngine.Object.UnityEngine.Object的销毁是调 ...

  2. shell中read使用

    (1) 下面的语句从输入中读取n个字符并存入变量variable_name: read -n number_of_chars variable_name例如:[root@host1 shell]# r ...

  3. RHEL 7修改ssh默认端口号

    RHEL7修改默认端口号(默认port22)初次安装系统完毕后默认情况下系统已经启动了sshd服务当然我们也可以先进行检查: 步骤1,检查是否已安装ssh服务 步骤2,检查服务是否已开启 如上图所示显 ...

  4. STM32 基于定时器的PWM发生器

    脉冲宽度调制(PWM),是英文"Pulse Width Modulation" 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术.简单一点,就 ...

  5. Maven parent.relativePath

    Maven parent.relativePath 默认值为../pom.xml 查找顺序:relativePath元素中的地址–本地仓库–远程仓库 设定一个空值将始终从仓库中获取,不从本地路径获取, ...

  6. Hibernate的条件查询的几种方式

    1. 第一种,用?占位符,如: //登录(用?占位符) public List<UserPO> LoginUser(UserPO up)throws Exception{ Session ...

  7. WPF ListBox 获取listBoxItem

    1.已知item的DataContext,获取ListBoxItem 1)ItemContainerGenerator.ContainerFromItem var selectedItem = Doc ...

  8. C++ 实现俄罗斯方块

    C++ 实现俄罗斯方块 一.实验介绍 1.1 实验内容 本节实验我们进行设计俄罗斯方块前的思路分析,以及介绍ncurses 库的使用方法. 1.2 实验知识点 C++ 编程基础 ncurses 库的使 ...

  9. 小知识点 取消button动作 和取巧按钮高亮

      如果让按钮在点击时不变暗 进行下面设置:   如果使butten失去动画效果进行下面设置:(一般用于图片+文字,效果等于可以加图片班的label,当然label不能加图片)

  10. ACM 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品, ...