• 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>

    运行截图:

  • 相关阅读:
    C#中实现简单的预警提示功能(语音提示与弹窗提示)
    C#中使用SoundPlayer播放音频文件(wav文件)
    Angular中路由的嵌套-父子路由
    Winform中设置ZedGraph的坐标轴的标题和刻度不显示十次幂
    Angular中使用JS实现路由跳转、动态路由传值、get方式传值
    surprise库官方文档分析(二):使用预测算法
    surprise库官方文档分析(一)
    webpack官方文档分析(三):Entry Points详解
    webpack官方文档分析(二):概念
    webpack官方文档分析(一):安装
  • 原文地址:https://www.cnblogs.com/Qian123/p/5203705.html
Copyright © 2020-2023  润新知