3、DOM操作

一、认识DOM

文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。

先来看看下面代码:

将HTML代码分解为DOM节点层次图:

HTML文档可以说由节点构成的集合,三种常见的DOM节点:

1. 元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签。

2. 文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

3. 属性节点:元素属性,如<a>标签的链接属性href="http://www.imooc.com"。

看下面代码:

<a href="http://www.imooc.com">JavaScript DOM</a>

二、通过ID获取元素

学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人。那么在网页中,我们通过id先找到标签,然后进行操作。

语法:

 document.getElementById(“id”) 

看看下面代码:

结果:null或[object HTMLParagraphElement]

注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。

示例错误代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>document.getElementById</title>
 6 </head>
 7 <body>
 8 <p id="con">JavaScript</p>
 9 <script type="text/javascript">
10   var mychar=document.getElementById("con");
11   document.write("结果:"+mychar); //输出获取的P标签。
12 </script>
13 </body>
14 </html>

输出结果:

JavaScript

结果:[object HTMLParagraphElement]

三、innerHTML 属性

innerHTML 属性用于获取或替换 HTML 元素的内容。

语法:

Object.innerHTML

注意:

1.Object是获取的元素对象,如通过document.getElementById("ID")获取的元素。

2.注意书写,innerHTML区分大小写。

我们通过id="con"获取<p> 元素,并将元素的内容输出和改变元素内容,代码如下:

结果:

四、改变 HTML 样式

HTML DOM 允许 JavaScript 改变 HTML 元素的样式。如何改变 HTML 元素的样式呢?

语法:

Object.style.property=new style;

注意:Object是获取的元素对象,如通过document.getElementById("id")获取的元素。

基本属性表(property):

注意:该表只是一小部分CSS样式属性,其它样式也可以通过该方法设置和修改。

看看下面的代码:

改变 <p> 元素的样式,将颜色改为红色,字号改为20,背景颜色改为蓝:

<p id="pcon">Hello World!</p>
<script>
   var mychar = document.getElementById("pcon");
   mychar.style.color="red";
   mychar.style.fontSize="20";
   mychar.style.backgroundColor ="blue";
</script>

结果:

 

五、显示和隐藏(display属性)

网页中经常会看到显示和隐藏的效果,可通过display属性来设置。

语法:

Object.style.display = value

注意:Object是获取的元素对象,如通过document.getElementById("id")获取的元素。

value取值:

看看下面代码:

示例代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 5 <title>display</title>
 6     <script type="text/javascript">
 7         function hidetext()
 8         {
 9         var mychar = document.getElementById("con");
10         mychar.style.display="none";
11         }
12         function showtext()
13         {
14         var mychar = document.getElementById("con");
15         mychar.style.display="block";
16         }
17     </script>
18 </head>
19 <body>
20     <h1>JavaScript</h1>
21     <p id="con">做为一个Web开发师来说,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript是必不可少的工具。</p>
22     <form>
23        <input type="button" onclick="hidetext()" value="隐藏内容" />
24        <input type="button" onclick="showtext()" value="显示内容" />
25     </form>
26 </body>
27 </html>

六、控制类名(className 属性)

className属性设置或返回元素的class 属性。

语法:

object.className = classname

作用:

1.获取元素的class 属性

2. 为网页内的某个元素指定一个css样式来更改该元素的外观

看看下面代码,获得 <p> 元素的 class 属性和改变className:

结果:

示例代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 5 <title>className属性</title>
 6 <style>
 7     body{ font-size:16px;}
 8     .one{
 9         border:1px solid #eee;
10         width:230px;
11         height:50px;
12         background:#ccc;
13         color:red;
14     }
15     .two{
16         border:1px solid #ccc;
17         width:230px;
18         height:50px;
19         background:#9CF;
20         color:blue;
21     }
22     </style>
23 </head>
24 <body>
25     <p id="p1" > JavaScript使网页显示动态效果并实现与用户交互功能。</p>
26     <input type="button" value="添加样式" onclick="add()"/>
27     <p id="p2" class="one">JavaScript使网页显示动态效果并实现与用户交互功能。</p>
28     <input type="button" value="更改外观" onclick="modify()"/>
29
30     <script type="text/javascript">
31        function add(){
32           var p1 = document.getElementById("p1");
33           p1.className="one";
34        }
35        function modify(){
36           var p2 = document.getElementById("p2");
37           p2.className="two";
38        }
39     </script>
40 </body>
41 </html>

练习:

1、定义"改变颜色"的函数

提示:
obj.style.color
obj.style.backgroundColor 

2、定义"改变宽高"的函数

提示:
obj.style.width
obj.style.height 

3、定义"隐藏内容"的函数

提示:
obj.style.display="none";

4、定义"显示内容"的函数

提示:
obj.style.display="block";

5、定义"取消设置"的函数

提示:
使用confirm()确定框,来确认是否取消设置。
如是将以上所有的设置恢复原始值,否则不做操作。

6、当点击相应按钮,执行相应操作,为按钮添加相应事件

具体代码:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
 5 <title>javascript</title>
 6 <style type="text/css">
 7 body{font-size:12px;}
 8 #txt{
 9     height:400px;
10     width:600px;
11     border:#333 solid 1px;
12     padding:5px;}
13 p{
14     line-height:18px;
15     text-indent:2em;}
16 </style>
17 </head>
18 <body>
19   <h2 id="con">JavaScript课程</H2>
20   <div id="txt">
21      <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>
22         <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p>
23         <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>
24         <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>
25   </div>
26   <form>
27   <!--当点击相应按钮,执行相应操作,为按钮添加相应事件-->
28     <input type="button" value="改变颜色" onclick="aa()">
29     <input type="button" value="改变宽高" onclick="bb()">
30     <input type="button" value="隐藏内容" onclick="cc()" >
31     <input type="button" value="显示内容" onclick="dd()">
32     <input type="button" value="取消设置" onclick="ee()" >
33   </form>
34   <script type="text/javascript">
35   var txt=document.getElementById("txt");
36 //定义"改变颜色"的函数
37     function aa(){
38         txt.style.color="red";
39     }
40
41 //定义"改变宽高"的函数
42     function bb(){
43         txt.style.width="30px";
44         txt.style.height="60px";
45     }
46
47 //定义"隐藏内容"的函数
48     function cc(){
49         txt.style.display="none";
50     }
51
52 //定义"显示内容"的函数
53     function dd(){
54         txt.style.display="block";
55     }
56
57 //定义"取消设置"的函数
58     function ee(){
59         var message=confirm("确认取消所有设置么?");
60         if(message==true){
61              txt.removeAttribute(‘style‘);
62         }
63     }
64
65
66   </script>
67 </body>
68 </html>

运行截图:

时间: 2024-10-19 00:05:09

3、DOM操作的相关文章

jquery中的DOM操作

DOM操作分为:DOM核心.HTML-DOM.CSS-DOM 1.节点操作 查找 查找元素节点:jquery选择器 查找属性节点:attr("")方法,参数为要查询的属性的名字 创建 创建元素节点:$("html")方法,参数为HTML标记字符串,如:<p></p> 注意:(1)动态创建的新元素节点不会被自动添加到文档中,需要用其他方法插入文档中(2)创建元素时注意标签闭合,可以用$("<p></p>&quo

认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法

(一)认识JQuery  JQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一套定义好的方法    JQuery的主旨:以更少的代码,实现更多的功能 (二)JQuery的优势 1)可以像CSS一样访问和操作DOM 2)修改CSS控制页面外观 3)简化JS代码操作 4)事件代理更加容易 5)动画效果使用方便 6) Ajax技术更加完美 7)大量的基于Jquery的插件 8)可以自定义扩展功能插件 (三)JQuery的语法 格式:$(selector).actio

DOM操作表格

前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量的代码.本文将详细介绍DOM操作表格的属性和方法 需求 要通过DOM实现下列格式的表格结构 <table border = "1" width = "100%">     <tbody>         <tr>           

zBase --轻量级DOM操作库

项目地址:ZengTianShengZ-github zBase-1.2.0 --v3 修复部分bug,添加AMD规范测试 zBase-1.1.0 --v2 对 v1 版本做了升级,优化DOM查找,简化API,提高代码可读性,支持模块化 支持 AMD & CommonJS zBase-1.0.0 --v1 没有任何依赖 轻量级的Dom操作库,封装一些常用的css选择器和事件操作等 Quick start $ npm install $ gulp scripts 使用npm安装 zBase: $

JQuery基本知识、选择器、事件、DOM操作、动画

1:基本选择器 <title></title> <script src="js/jquery-1.7.2.min.js"></script> </head> <body> <form id="form1" runat="server"> <div id="div1"> <a>aaaaa</a> <%--

jQuery学习之路(2)-DOM操作

▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看看DOM操作都有哪些 逐一来看 先写一份HTML代码,后面的代码将操作这份HTML代码 <p title="选择你最喜欢的水果">你最喜欢的水果?</p> <ul> <li title="苹果">苹果</li>

JavaScript常用原生DOM操作

最近,自己在投简历,找工作,在忙碌的复习当中,希望把有用的知识分享出去,是自己的成长,也可以给别人帮助. 今天给大家分享一些常用的原生的JavaScript DOM 操作. OK,那开始吧,那就开始吧O(∩_∩)O~~ 一.查看浏览器视口尺?   window.innerWidth/window.innerHeight(IE8以及IE8以下不能用  (′д` )-彡  )        document.documentElement.clientHeight/document.document

为什么说DOM操作很慢

原文转自:http://kb.cnblogs.com/page/534571/ 一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来. 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为,比如布局(layout)和绘制(paint).下面主要先介绍下这些浏览器行为,阐述一个页面是怎么最终被呈现出来的,另外还会从代码的角度,来说明一些不好的实践以及一些优化方案

DOM操作优化

缓存DOM对象 JavaScript的DOM操作可以说是JavaScript最重要的功能,我们经常要根据用户的操作来动态的增加和删除元素,或是通过AJAX返回的数据动态生成元素.比如我们获得了一个很多元素的数组data[],需要将其每个值生成一个li元素插入到一个id为container的ul元素中,最简单(最慢)的方式是: var liNode, i, m; for (i = 0, m = data.length; i < m; i++) { liNode = document.createE

Jquery基础之DOM操作

 一.jQuery对象与Dom对象的区别 一直以来对于通过jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,开始的时候不理解,现在此案知道,原来jQuery获得的对象并不和我们平时使用getElementById获得的对象是一样的对象.所以一些新手就很迷惑,为什么${”#Element”}不能直接innerHTML,这就是原因所在,解决方式请看下文. jQuery对象与dom对象的转换只有jquery对象才能使用jquery定义的方法.注意dom对象和jquery对象是有