前端开发之JavaScript HTML DOM理论篇二

主要内容:

 1、HTML DOM元素

 2、HTML DOM事件

 

一、DOM元素

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

  1、创建新的HTML元素 

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

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

  实例和解析: 

<div id="box1">
    <p id="p1">This is first paragraph.</p>
    <p id="p1">This is second paragraph.</p>
</div>

<script>
    // 创建一个新的<p>元素
    var para = document.createElement("p");    

    // 如需向<p>元素添加文本,你要首先创建文本节点,以下这句即为创建文本节点
    var node = document.createTextNode("This is new!");

    // 接下来,你要将文本节点追加到<p>元素中
    para.appendChild(node);    
    
   // 最后,要向已有的元素中追加这个元素,先查找到这个元素
   var element = document.getElementById("box1"); 
 
   // 将新元素添加到已有的元素中
   element.appendChild(para);
   
</script>

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

  实例:

<div id="box1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");// 创建一个新的<p>元素
var node = document.createTextNode("This is another one!"); // 创建文本节点
para.appendChild(node); // 向<p>中追加文本节点

var element = document.getElementById("box");// 查找<p>节点的父节点
var child = document.getElementById("p1"); // 找到<p>节点的同胞节点
element.insertBefore(para,child);// 将新创建的<p>节点插入到id为p1的同胞节点之前

  2、删除已有的HTML元素

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

    实例:  

<div id="box1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
    // 获取父元素
    var parent = document.getElementById("box1"); 
    // 获取要删除的元素
    var child = document.getElementById("p1");
    // 删除该元素
    parent.removeChild(child);
</script>

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

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

  3、替换HTML元素

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

<div id="box1">
    <p id="p1">This is a paragraph.</p>
    <p id="p2">This is another paragraph.</p>
</div>

<script>
    var para = document.createElement("p");
    var node = document.createTextNode(" This is new new !");
    para.appendChild(node);
    
    var parent = document.getElementById("box1");
    var child = document.getElementById("p2");
    parent.replaceChild(para,child);
</script>

 

二、HTML DOM事件

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

  1、对事件做出反应

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

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

onclick = javaScript

    实例:    

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

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

<!DOCTYPE HTMLl>
<html lang="en">
<head>
    <meta charset="utf-8">
<script>
    function changeText(id){
    id = innnerHTML = "hello world!";
}
</script>
</head>
<body>
<h2 onclick="changetext(this)">请点击这段文本!</h2>
</body>
</html>

 

  2、HTML 事件属性

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

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

<!DOCTYPE html>
<html>
<body>

<p>点击按钮来执行 <strong>displayDate()</strong> 函数。</p>

<button onclick="displayDate()">试一试</button>
<p id="demo"></p>

</body>
<script>
function displayDate()
{
    document.getElementById("demo").innerHTML = Date();
}
</script>
</html>

 

   3、使用 HTML DOM 来分配事件

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

  实例: 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>

<p>点击按钮来执行 <b>displayDate()</b> 函数。</p>
<button id=“myBtn”>试一试</button>

<p id="demo"></p>

</body>
<script>
document.getElementById("myBtn").onclick=function(){
    displayDate();
}
function displayDate(){
    document.getElementbyId("demo").innerHTML = Date();
}
</script>
</html>

 

  4、onload 和 onunload 事件

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

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

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body onload="checkCookies()">

<p>弹出的提示框会告诉你浏览器是否已启用 cookie。</p>
</body>
<script>
    function checkCookies(){
    if(navigator.cookieEnabled == true)
    {
        alert("Cookies are enabled");
    }
    else
    {
        alert("Cookies are not enabled");
    }
}
</script>
</html>

 

  5、onchange 事件

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

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body>

请输入你的英文名:<input type="text" id="fname" onchange="myFunction()">
<p>当你离开输入框时,被触发的函数会把你输入的文本转换为大写字母。</p>
</body>
<script>
    function myFunction(){
        var a = document.getElementById("fname");
        a.value = a.value.toUpperCase();
}
</script>
</html>

  6、onmouseover 和 onmouseout 事件

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

    实例:    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body>
</body>
<div
onmouseover="mOver(this)"
onmouseout="mOut(this)"
style="background-color:greenyellow;width:200px;height:50px;padding-top:25px;text-align:center;">
Mouse Over Me
</div>
<script>
    function mOver(obj){
        obj.innerHTML = "Thank you!";
        obj.style.backgroundColor = "red";
    }
    function mOut(obj){
        obj.innerHTML  = "move here!";
        obj.style.backgroundColor = "greenyellow";
    }
</script>
</html>

  

  7、onmousedown、onmouseup 以及 onclick 事件

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

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

  实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body>
<div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:#D94A38;width:200px;height:50px;padding-top:25px;text-align:center;">
点击这里
</div>
</body>
<script>
    function mDown(obj){
       obj.style.backgroundColor = "green";
       obj.innerHTML = "松开鼠标";
}
    function mUp(obj){
        obj.style.backgroundColor = "yellow";
        obj.innerHTML = "谢谢!";
    }
</script>
</html>

 

返回顶部

posted @ 2018-08-20 00:03  暮光微凉  阅读(241)  评论(0编辑  收藏  举报