主要内容:

 1、HTML DOM元素

 2、HTML DOM事件

一、DOM元素

  主要操作有添加、删除和替换HTML元素

  1、创建新的HTML元素 

   (1)方法一: appendChild() 追加

  如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。

  实例和解析: 

  1. <div id="box1">
  2. <p id="p1">This is first paragraph.</p>
  3. <p id="p1">This is second paragraph.</p>
  4. </div>
  5.  
  6. <script>
  7. // 创建一个新的<p>元素
  8. var para = document.createElement("p");
  9.  
  10. // 如需向<p>元素添加文本,你要首先创建文本节点,以下这句即为创建文本节点
  11. var node = document.createTextNode("This is new!");
  12.  
  13. // 接下来,你要将文本节点追加到<p>元素中
  14. para.appendChild(node);
  15.  
  16. // 最后,要向已有的元素中追加这个元素,先查找到这个元素
  17. var element = document.getElementById("box1");
  18.  
  19. // 将新元素添加到已有的元素中
  20. element.appendChild(para);
  21.  
  22. </script>

  (2)方法二:insertBefore(new,old) 插入

  实例:

  1. <div id="box1">
  2. <p id="p1">This is a paragraph.</p>
  3. <p id="p2">This is another paragraph.</p>
  4. </div>
  5.  
  6. <script>
  7. var para = document.createElement("p");// 创建一个新的<p>元素
  8. var node = document.createTextNode("This is another one!"); // 创建文本节点
  9. para.appendChild(node); // 向<p>中追加文本节点
  10.  
  11. var element = document.getElementById("box");// 查找<p>节点的父节点
  12. var child = document.getElementById("p1"); // 找到<p>节点的同胞节点
  13. element.insertBefore(para,child);// 将新创建的<p>节点插入到id为p1的同胞节点之前

  2、删除已有的HTML元素

    如需删除HTML元素,你需要知道该元素的父元素。

    实例:  

  1. <div id="box1">
  2. <p id="p1">This is a paragraph.</p>
  3. <p id="p2">This is another paragraph.</p>
  4. </div>
  5.  
  6. <script>
  7. // 获取父元素
  8. var parent = document.getElementById("box1");
  9. // 获取要删除的元素
  10. var child = document.getElementById("p1");
  11. // 删除该元素
  12. parent.removeChild(child);
  13. </script>

    简略方法:找到您需要删除的子元素,然后使用 parentNode 属性来查找其父元素

  1. var child = document.getElementById("p1");
  2. child.parentNode.removeChild(child); // child.parentNode表示child的父元素

  3、替换HTML元素

如需替换 HTML DOM 中的元素,请使用 replaceChild(new,old) 方法: 

  1. <div id="box1">
  2. <p id="p1">This is a paragraph.</p>
  3. <p id="p2">This is another paragraph.</p>
  4. </div>
  5.  
  6. <script>
  7. var para = document.createElement("p");
  8. var node = document.createTextNode(" This is new new !");
  9. para.appendChild(node);
  10.  
  11. var parent = document.getElementById("box1");
  12. var child = document.getElementById("p2");
  13. parent.replaceChild(para,child);
  14. </script>

二、HTML DOM事件

  HTML DOM 允许 JavaScript 对 HTML 事件作出反应。

  1、对事件做出反应

    当事件发生时,可以执行 JavaScript,比如当用户点击一个 HTML 元素时。

    如需在用户点击某个元素时执行代码,请把 JavaScript 代码添加到 HTML 事件属性中:
    

  1. onclick = javaScript

    实例:    

  1. // 当用户点击时,会改变 <h2> 元素的内容
  2. <!DOCTYPE HTML>
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. <h2 onclick = "this.innerHTML='hello!'">请点击这段文本!有惊喜...</h2>
  9. </body>
  10. </html>

    另一种写法 --- 从事件处理程序中调用函数 

  1. <!DOCTYPE HTMLl>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <script>
  6. function changeText(id){
  7. id = innnerHTML = "hello world!";
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. <h2 onclick="changetext(this)">请点击这段文本!</h2>
  13. </body>
  14. </html>

  2、HTML 事件属性

    如需向 HTML 元素分配事件,您可以使用事件属性。

    实例 --- 当点击按钮时,会执行名为 displayDate 的函数。  

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <p>点击按钮来执行 <strong>displayDate()</strong> 函数。</p>
  6.  
  7. <button onclick="displayDate()">试一试</button>
  8. <p id="demo"></p>
  9.  
  10. </body>
  11. <script>
  12. function displayDate()
  13. {
  14. document.getElementById("demo").innerHTML = Date();
  15. }
  16. </script>
  17. </html>

 

 3、使用 HTML DOM 来分配事件

    HTML DOM 允许您使用 JavaScript 向 HTML 元素分配事件。

  实例: 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7.  
  8. <p>点击按钮来执行 <b>displayDate()</b> 函数。</p>
  9. <button id=“myBtn”>试一试</button>
  10.  
  11. <p id="demo"></p>
  12.  
  13. </body>
  14. <script>
  15. document.getElementById("myBtn").onclick=function(){
  16. displayDate();
  17. }
  18. function displayDate(){
  19. document.getElementbyId("demo").innerHTML = Date();
  20. }
  21. </script>
  22. </html>

  4、onload 和 onunload 事件

当用户进入或离开页面时,会触发 onload 和 onunload 事件。

  onload 事件可用于检查访客的浏览器类型和版本,以便基于这些信息来加载不同版本的网页。

  onload 和 onunload 事件可用于处理 cookies。 

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body onload="checkCookies()">
  7.  
  8. <p>弹出的提示框会告诉你浏览器是否已启用 cookie。</p>
  9. </body>
  10. <script>
  11. function checkCookies(){
  12. if(navigator.cookieEnabled == true)
  13. {
  14. alert("Cookies are enabled");
  15. }
  16. else
  17. {
  18. alert("Cookies are not enabled");
  19. }
  20. }
  21. </script>
  22. </html>

  5、onchange 事件

onchange事件常用于输入字段的验证。

实例 --- 当用户改变输入字段的内容时,将调用 upperCase() 函数。 

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7.  
  8. 请输入你的英文名:<input type="text" id="fname" onchange="myFunction()">
  9. <p>当你离开输入框时,被触发的函数会把你输入的文本转换为大写字母。</p>
  10. </body>
  11. <script>
  12. function myFunction(){
  13. var a = document.getElementById("fname");
  14. a.value = a.value.toUpperCase();
  15. }
  16. </script>
  17. </html>

  6、onmouseover 和 onmouseout 事件

    onmouseover 和 onmouseout 事件可用于在鼠标指针移动到或离开元素时触发函数。

    实例:    

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. </body>
  8. <div
  9. onmouseover="mOver(this)"
  10. onmouseout="mOut(this)"
  11. style="background-color:greenyellow;width:200px;height:50px;padding-top:25px;text-align:center;">
  12. Mouse Over Me
  13. </div>
  14. <script>
  15. function mOver(obj){
  16. obj.innerHTML = "Thank you!";
  17. obj.style.backgroundColor = "red";
  18. }
  19. function mOut(obj){
  20. obj.innerHTML = "move here!";
  21. obj.style.backgroundColor = "greenyellow";
  22. }
  23. </script>
  24. </html>

  

  7、onmousedown、onmouseup 以及 onclick 事件

    onmousedown、onmouseup 以及 onclick 事件是鼠标点击的全部过程。首先当某个鼠标按钮被点击时,触发 onmousedown 事件,

  然后,当鼠标按钮被松开时,会触发 onmouseup 事件,最后,当鼠标点击完成时,触发 onclick 事件。

  实例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:#D94A38;width:200px;height:50px;padding-top:25px;text-align:center;">
  8. 点击这里
  9. </div>
  10. </body>
  11. <script>
  12. function mDown(obj){
  13. obj.style.backgroundColor = "green";
  14. obj.innerHTML = "松开鼠标";
  15. }
  16. function mUp(obj){
  17. obj.style.backgroundColor = "yellow";
  18. obj.innerHTML = "谢谢!";
  19. }
  20. </script>
  21. </html>

返回顶部

前端开发之JavaScript HTML DOM理论篇二的更多相关文章

  1. 前端开发之JavaScript HTML DOM理论篇一

    主要内容: 1.DOM简介 2.DOM 节点 3.DOM 方法和属性 4.DOM 访问和修改 一.DOM简介 1.什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTM ...

  2. 前端开发之JavaScript HTML DOM实战篇

    实战案例一: “灯泡发光” <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  3. 前端开发之JavaScript篇

    一.JavaScript介绍  前端三剑客之JavaScript,简称js,可能是这三个里面最难的一个了.很早以前,市面上流通着三种js版本,为了统一,ECMA(欧洲计算机制造协会)定义了规范的版本, ...

  4. 前端开发之JavaScript基础篇一

    主要内容: 1.JavaScript介绍 2.JavaScript的引入方法和输出及注释 3.javaScript变量和命名规则 4.五种基本数据类型 5.运算符 6.字符串处理 7.数据类型转换   ...

  5. 前端开发之javascript BOM篇

    主要内容: 1.BOM输出 2.BOM的对象 3.client的相关属性 4.offset的相关属性 5.scroll的相关属性 前情提要: 何谓BOM? 所谓 BOM 指的就是浏览器对象模型 Bro ...

  6. 前端开发之JavaScript基础篇三

    主要内容: 1.创建对象的几种方式 2.JavaScript内置对象 3.JavaScript错误--Throw.Try 和 Catch 4.JavaScript 表单验证 一.创建对象的几种方式 1 ...

  7. 前端开发之JavaScript基础篇四

    主要内容: 1.定时器 2.正则表达式入门 3.元字符 4.正则表达式实战运用 一.定时器 javaScript里主要使用两种定时器,分别是:setInterval()和setTimeout(). 1 ...

  8. 前端开发之JavaScript基础篇二

    主要内容: 1.流程控制条件语句和switch语句 2.for循环和while循环 3.Break语句和Continue语句 4.数组和数组常用方法 5.函数 6.对象 一.流程控制条件语句和swit ...

  9. 前端开发之BOM和DOM(转载)

    BOM BOM:是指浏览器对象模型,它使JavaScript可以和浏览器进行交互. 1,navigator对象:浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息. naviga ...

随机推荐

  1. oracle-分区(笔记)

    partition by 用于指定分区方式 range 表示分区的方式是范围划分 partition pn 用于指定分区的名字 values less than 指定分区的上界(上限) ------- ...

  2. 搭建jetbrains 注册服务器

    wget http://home.ustc.edu.cn/~mmmwhy/jetbrain.sh && sh ./jetbrain.sh 输入默认的端口号跟用户名,然后记住服务器地址. ...

  3. python调用dll

    调用CALLBACK标记的dll方法要用dll = ctypes.windll.LoadLibrary( 'test.dll' ) 没有CALLBACK的方法用dll = ctypes.cdll.Lo ...

  4. spring--集合注入(常规方法)

    数据,list,set,map,Properties 集合注入 package Spring_collections; /** * Created by luozhitao on 2017/8/11. ...

  5. 单机数据库优化的一些实践(mysql)

    数据库优化有很多可以讲,按照支撑的数据量来分可以分为两个阶段:单机数据库和分库分表,前者一般可以支撑500W或者10G以内的数据,超过这个值则需要考虑分库分表.另外,一般大企业面试往往会从单机数据库问 ...

  6. 浅谈splay

    \(BST\) 二叉查找树,首先它是一颗二叉树,其次它里面每个点都满足以该点左儿子为根的子树里结点的值都小于自己的值,以该点右儿子为根的子树里结点的值都大于自己的值.如果不进行修改,每次查询都是\(O ...

  7. Linux make menuconfig报错 Your display is too small to run Menuconfig!

    在没有全屏的状态下执行 make menuconfig,如果报下面的错误,表示终端的窗口太小,需要放大窗口或者全屏操作. ## using defaults found in /dev/null#Yo ...

  8. SharePoint2013 中集成AD RMS 与Office Web App 2013集成

    SharePoint2010时Office Web App2010是一个让人又爱又恨的产品,尽管能够在WEB上查看与编辑文档,甚至能够多能协同编辑,但总会遇到两个看似普通的需求却需要给业务人员大费口舌 ...

  9. 常见企业IT支撑【1、办公网络IP地址规划】

    规划思路如下,可灵活变化

  10. Unit01: JDBC原理 、 JDBC基础编程

    Unit01: JDBC原理 . JDBC基础编程 这个文件里面有两块内容: 1.用比较麻烦的方式连接数据库,test1(),test4() 2.创建DBTool,测试DBTool连接数据库 ,tes ...