• JavaScript HTML DOM学习记录


    HTML DOM (文档对象模型)

    当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

    HTML DOM 模型被构造为对象的树。

    HTML DOM 树

    通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的 HTML。

    l  JavaScript 能够改变页面中的所有 HTML 元素

    l  JavaScript 能够改变页面中的所有 HTML 属性

    l  JavaScript 能够改变页面中的所有 CSS 样式

    l  JavaScript 能够对页面中的所有事件做出反应

     

    二 查找 HTML 元素

    通常,通过 JavaScript,您需要操作 HTML 元素。

    有三种方法来找到要操作的元素:

    l  通过 id 找到 HTML 元素 

    document.getElementById(id)

    l  通过标签名找到 HTML 元素 

    getElementsByTagName(tagName)

    l  通过类名找到 HTML 元素  (在 IE 5,6,7,8 中无效)

     

     改变 HTML

    1.改变 HTML 输出流

    document.write()

    可用于直接向 HTML 输出流写内容。

    提示:绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档。 

    2. 改变 HTML 内容

    document.getElementById(id).innerHTML=newHTML

     

    3. 改变 HTML 属性

    document.getElementById(id).attribute=newvalue

    实例:

    <body>

    <img id="image" src="smiley.gif">

    <script>

    document.getElementById("image").src="landscape.jpg";

    </script>

    </body>

    4.改变HTML样式

    document.getElementById(id).style.property=newstyle

    <p id="p2">HelloWorld!</p>

    <script>

    document.getElementById("p2").style.color="blue";

    document.getElementById("p2").style.background-color="#ccc";

    </script>

     注:visibility显示与隐藏文本,值为hidden和visible。

    5. 对 HTML 事件做出反应

    HTML 事件的例子:

    l  当用户点击鼠标时

    l  当网页已加载时

    l  当图像已加载时

    l  当鼠标移动到元素上时

    l  当输入字段被改变时

    l  当提交 HTML 表单时

    l  当用户触发按键时

    等等

     

    当事件发生时可以执行 JavaScript;

    如用户在 HTML 元素上点击时,可以对 HTML 的onclick事件添加 JavaScript 代码:

    onclick=JavaScript

    实例:

    <script>

    function changetext(obj){obj.innerHTML="谢谢!";}

    </script>

    <h1onclick="changetext(this)">请点击该文本</h1>

    onclickHTML元素的点击事件;

     

    要让HTML元素在某个事件发生(,,)作什么(作什么是动作),首先要先给这个HTML元素添加对应的事件(添加事件),其次再加上你要作的动作(编写JS代码);

     

    1).事件添加方式及onclick事件

    a.事件直接加在HTML元素上

    <h1onclick="this.innerHTML='谢谢!'">请点击该文本</h1>

    b.事件通过JS添加在HTML元素上

    <button id="myBtn ">点击这里</button>

    <script>

    document.getElementById("myBtn").onclick=function(){displayDate()};

    </script>

     

    2).onload 和 onunload 事件

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

    onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

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

     

    实例:

    <!DOCTYPE html>

    <html>

    <bodyonload="checkCookies()">

    <script>

    function checkCookies()

    {

    if (navigator.cookieEnabled==true)

         {

                  alert("已启用cookie")

         }

    else

         {

                  alert("未启用cookie")

         }

    }

    </script>

    <p>提示框会告诉你,浏览器是否已启用cookie。</p>

    </body>

    </html>

     

      3) .onchange事件

             onchange 事件常结合对输入字段的验证来使用,或者其它动作.

             实例:

             <script>

    function myFunction()

    {

    varx=document.getElementById("fname");

    x.value=x.value.toUpperCase();

    }

    </script>

    </head>

    <body>

    <input type="text"id="fname" onchange="myFunction()">

    <p>当您离开输入字段时,会触发将输入文本转换为大写的函数。</p>

      

      4).onmouseover 和 onmouseout 事件

             onmouseover 和 onmouseout 事件可用于在用户的鼠标移至HTML 元素上方或移出元素时触发函数

             实例:

             <h1 onmouseover="style.color='red'"onmouseout="style.color='blue'">

    例一 请把鼠标移到这段文本上

    </h1>

    <divonmouseover="mOver(this)" onmouseout="mOut(this)" >

    例二 把鼠标移到上面

    </div>

    <script>

    function mOver(obj)

    {

    obj.innerHTML="谢谢"

    }

    function mOut(obj)

    {

    obj.innerHTML="把鼠标移到上面"

    }

    </script>

     

    5). onmousedown、onmouseup 以及 onclick 事件

         onmousedown, onmouseup 以及onclick 构成了鼠标点击事件的所有部分;

    l   首先当按下鼠标按钮时,会触发 onmousedown 事件;

    l   当释放鼠标按钮时,会触发 onmouseup 事件;

    l   最后,当完成鼠标点击时,会触发 onclick 事件.

    实例:

    <div onmousedown="mDown(this)" onmouseup="mUp(this)"onclick="mClick(this)" style="90px;height:20px;">请点击这里</div>

    <script>

    function mDown(obj)

    {

    obj.style.backgroundColor="#1ec5e5";

    obj.innerHTML="请释放鼠标按钮";

    }

    function mUp(obj)

    {

    obj.style.backgroundColor="green";

    obj.innerHTML="请按下鼠标按钮";

    }

    function mClick(obj){ obj.innerHTML="click";}

    </script>

     

    6). onfocus、onblur事件

         获得和失去焦点事件

         实例:

    <script>

    function focusFun(x)

         {

                  x.style.background="yellow";

         }

         functionblurFun(x)

         {

                  x.style.background="#fff";

         }

    </script>

    <input type="text" onfocus="focusFun(this)"onblur=" blurFun(this)">

    四 JavaScript HTML DOM 元素(节点)

    1. 添加节点(HTML 元素)

             添加新HTML DOM元素,首先创建该元素(元素节点),然后向一个已存在的元素追加该元素

    1)       创建HTML元素

             document.createElement(Element)

     

    2)       向elementNode节点内的子元素末追加元素

    (向节点的子节点列表的末尾添加新的子节点)

    elementNode.appendChild(newElement)        

     

    3)       向elementNode节点内某个子元素前插入元素

    (在已有的子节点前插入一个新的子节点)

    elementNode.insertBefore(new_node,existing_node)

    new_node         要     插入新的节点

    existing_node  已有节点,在此节点前插入新节点

     

    4)       创建文本节点

    document.createTextNode(contents)

     

    实例:

    <div id="div1">

    <p id="p1">这是一个段落</p>

    <p id="p2">这是另一个段落</p>

    </div>

    <script>

    varpara=document.createElement("p");

    var node=document.createTextNode("这是新段落。");

    para.appendChild(node);

     

    varelement=document.getElementById("div1");

    element.appendChild(para);

    </script>

     

    2.删除节点(HTML 元素)

    如需删除 HTML 元素,您必须首先获得该元素的父元素

    删除子节点, 如成功,则返回被删除的节点,否则返回 NULL。

    elementNode.removeChild(node)

       elementNode父节点    node 子节点

     

             实例一:显示找到父元素,再删除子元素

                  <div id="div1">

    <p id="p1">这是一个段落。</p>

    <p id="p2">这是另一个段落。</p>

    </div>

    <script>

    varparent=document.getElementById("div1");

    varchild=document.getElementById("p1");

    parent.removeChild(child);

    </script>

    实例二:间接通过父元素删除子元素

    varchild=document.getElementById("p1");

    child.parentNode.removeChild(child);

     

    3. lastChild 属性

    lastChild 属性返回文档的最后一个子节点

    documentObject.lastChild

     

    4. previousSibling属性

             previousSibling属性可返回某节点之前紧跟的节点(处于同一树层级)

    如果没有此节点,那么该属性返回 null。

    nodeObject.previousSibling

     

    5. nodeType属性

             nodeType 属性返回被选节点的节点类型。

             elementNode.nodeType 

    节点编号对应节点名称

    节点编号

    节点名称

    节点编号

    节点名称

    1

    Element

    7

    Processing Instrucion

    2

    Attribute

    8

    Comment

    3

    Text

    9

    Document

    4

    CDATA

    10

    Document Type

    5

    Entity Reference

    11

    Document Fragment

    6

    Entity

    12

    Notation

     

    删除节点实例:

             <scripttype="text/javascript">

    //检查最后一个节点是否是元素节点

    function get_lastchild(n)

    {

    var x=n.lastChild;

    while (x.nodeType!=1)

     {

     x=x.previousSibling;

     }

    return x;

    }

    xmlDoc=loadXMLDoc("/example/xdom/books.xml");

    varlastNode=get_lastchild(xmlDoc.documentElement);

    vardelNode=xmlDoc.documentElement.removeChild(lastNode);

    </script>

     

    注:所有举例均参照于http://www.w3school.com.cn

  • 相关阅读:
    C++11 特色语法在 OI 中的运用
    webpack基本使用(一)
    LeetCode 887. 鸡蛋掉落 题解
    Codeforces Round #735 (Div. 2) C. Mikasa
    阿里云RDS与ECS自建mysql数据库主从同步(GTID方式)
    MySQL 5.7.x修改root默认密码
    SpringBoot引入第三方jar包或本地jar包的处理方式
    K8s 常用命令(随时更新......)
    六 Prometheus + Altermanager Email 报警
    四 Prometheus + consul
  • 原文地址:https://www.cnblogs.com/sylovezp/p/3396629.html
Copyright © 2020-2023  润新知