Javascript知识点<一>

DHTML:动态的HTML语言

 它不是一门新的技术,它是几个技术的综合体

 DHTML包含以下技术:

HTML: 将页面中的数据使用HTML标签进行封装起来, 便于数据的处理

CSS : 讲HTML标签所封装的数据进行样式的美化

javascript:处理页面中复杂逻辑业务 例如(点击操作)

DOM : 讲HTML中数据(标签、属性、文本) 解析成 对于对象,便于操作  对象。属性  对象。方法()

DOM: document object model 文档对象模型

作用:将HTML数据(标签、属性、文本) 解析成对象操作。

原理: 讲html文档 在加载到内存中的时候,通过DOM解析技术,在内存中 生产 DOM树。

  树种的分支  可以成为 节点(对象)

BOM: browser object model 浏览器对象模型

BOM 其实相当于一个浏览器中的窗口

BOM在 DHTML技术用, 使用一个 window对象 代表浏览器中一个打开的窗口。

BOM包含如下几个方面:

navigator 包含关于 Web 浏览器的信息。 

location 包含关于当前 URL 的信息。 

history 包含了用户已浏览的 URL 的信息。 

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


 javascript常用操作:

将信息在页面中通过消息提示框弹出提示:

alert("");

将信息在页面中 显示:

document.write("<font color='red'>文字</font>");

javascripthtml结合方式

在页面中 直接写<script type="text/javascript">.....</script>标签

加载一个js文件 <script type="text/javascript" src="1.js">


JS中的DOM操作:

DOM:文档对象模型.

DOM:将文档加载到内存 形成一个树状结构.

Document:代表是整个文档对象.

* 查找标签.

* document.getElementById();

* document.getElementsByTagName();

* document.getElementsByName();

* 创建元素:

* document.createElement();

* document.createTextNode();

Element:元素对象(标签对象)

* 操作元素的属性:

* setAttribute();

* getAttribute();

* removeAttribute();

* 在标签中查找标签:

* getElementsByTagName();

Node:节点对象

* 属性:

nodeName: 元素节点   标签名    属性节点    属性名      文本节点      #text

nodeType:  元素节点      1            属性节点     2               文本节点      3

nodeValue: 元素节点     null        属性节点    属性值       文本节点     文本内容.

* 插入节点.

appendChild();

insertBefore();

* 父节点 子节点 同辈节点

parentNode

childNodes

firstChild

lastChild

nextSibling

previousSibling

* 删除子节点

removeChild();

* 替换节点

replaceChild();

* 复制节点

cloneNode();  // 连同子节点一起复制  boolean:true

innerHTML:

* 元素中的html内容.设置元素中的html.

* 动态表格的生成.


如何通过document获取节点对象呢?

有三种方式:

getElementById 获取对 ID 标签属性为指定值的第一个对象的引用。 

通过标签中ID属性,来获取节点对象的方式.结果为一个节点对象 那么,说明了ID属性在页面中必须要唯一

getElementsByName 根据 NAME 标签属性的值获取对象的集合。 

通过标签中Name属性,来获取节点对象的方式.结果为一个或多个节点

getElementsByTagName 获取基于指定元素名称的对象集合。 

通过标签的标签名,来获取节点的方式,结果为一个或多个节点

方法:

getAttribute 获取指定标签属性的值。 使用前提: 必须在标签中 先指定value属性值

属性:

value 设置或获取控件对象的显示值。当控件对象提交时此值将返回给服务器。

innerHTML 设置或获取位于对象起始和结束标签内的 HTML。 

innerText 设置或获取位于对象起始和结束标签内的文本。 

节点的增删改查

<!--加入样式表-->

<style type="text/css">

div {

border:#0099FF 1px solid;

height:60px;

width:120px;

margin:20px 0px 20px 20px;

padding:10px 0px 0px 20px;

}

#div_1{

background-color:#00FFFF;

}

#div_2{

background-color:#FF3399;

}

#div_3{

background-color:#0000FF;

}

#div_4{

background-color:#FFFF66;

}

</style>


<script type="text/javascript">

function addNode(){

/*

在div_1中 加入"div区域1"

思路:1、找到DIV

 2、创建 文本 节点

 3、将文本节点 放入 div中

*/

//通过ID属性来找到DIV节点

//var divNode = document.getElementById("div_1");

//创建一个节点 (文本节点)

//var textNode = document.createTextNode("div区域1");

//向div中添加节点

//divNode.appendChild( textNode );

//-----------------------------------------------------

/*

在div_1中 加入<a href="http://www.baidu.com">百度</a>

思路:1、找到DIV

 2、创建 元素 节点

 3、将元素 节点 放入 div中

*/

//通过ID属性来找到DIV节点

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

//创建元素节点

var aNode = document.createElement("a");

//设置属性

aNode.setAttribute("href","http://www.baidu.com");

//设置文字

aNode.innerHTML="百度";

//向div中添加节点

divNode.appendChild( aNode );

}

function deleteNode(){

/*

删除DIV2

思路:

1、找到所要删除DIV

2、通过DIV找到父节点

3、通过父节点删除指定的DIV子节点

*/

//方式一

//找到DIV2

//var divNode = document.getElementById("div_2");

//删除DIV

//divNode.removeNode(true);

//方式二

//找到DIV2

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

//找到父节点

var parentNode = divNode.parentNode;

//删除指定的子节点

parentNode.removeChild( divNode );

}

function updateNode(){

/*

将 div区域3 替换成 新的文字

思路:

1、找到原有文字“div区域3”

2、创建新文字

3、用文字替换老文字

*/

//1、找到原有文字“div区域3”

//通过div_3找到文字节点 “div区域3”

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

//获取div3中所有子节点

var childNodes = divNode.childNodes;

//获取第一个子节点

var childNode = childNodes[0];

//2、创建新文字

var newTextNode = document.createTextNode("haha");

//3、替换节点

//方式一

//childNode.replaceNode( newTextNode ); 

//方式二

divNode.replaceChild( newTextNode, childNode);

}

function copyNode(){

/*

将div区域4 复制到div区域1上

思路:

1、找到DIV1 DIV4

2、克隆div4 产生克隆后的新节点

3、克隆后的新节点放置到div1

*/

//1、找到DIV1 DIV4

var divNode1 = document.getElementById("div_1");

var divNode4 = document.getElementById("div_4");

//2、克隆div4 产生克隆后的新节点

var newNode = divNode4.cloneNode(true);

//3、克隆后的新节点放置到div1

//方式一

//divNode1.replaceNode( newNode );

//方式二

//找到div1的父节点

var parentNode = divNode1.parentNode;

parentNode.replaceChild( newNode, divNode1);

}

</script>


</head>


<!-- 

创建节点的方法:

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

createTextNode 从指定值中创建文本字符串。  div区域2

添加节点的方法:

appendChild 给对象追加一个子元素。 

删除节点的方法:

removeChild 从元素上删除子结点。 

删除父节点中 所指定的子节点(会删除包含孙子节点)

(删除孩子)

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

删除当前指定的节点,默认不删除子节点 ,如果参数设置为true,代表同时删除子节点

(自杀)

替换节点的方法:

replaceChild 用新的子元素替换已有的子元素。

语法:replaceChild(oNewNode, oChildNode)

replaceNode 用其它元素替换对象。 

克隆节点的方法:

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

cloneNode( [bCloneChildren])

方法:

setAttribute 设置指定标签中属性的值 

属性:

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

集合:

childNodes 获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合。 

-->

<body>

    <div id="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="addNode()" />

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

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

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

</body>



你可能感兴趣的:(Javascript知识点<一>)