DIV CSS 佈局教程網

13.9 替換節點
編輯:JavaScript基礎知識     

一、JavaScript替換節點

在JavaScript中,我們可以使用replaceChild()方法來實現替換節點。

語法:

 
obj.replaceChild(new,old)

說明:

obj,表示被替換節點的父節點;

new,表示替換後的新節點;

old,需要被替換的舊節點。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function replace() {
            //獲取兩個文本框的值
            var tag = document.getElementById("tag").value;
            var txt = document.getElementById("txt").value;
            //獲取p元素
            var lvye = document.getElementById("lvye");
            //根據兩個文本框的值創建新節點
            var e = document.createElement(tag);
            var t = document.createTextNode(txt);
            e.appendChild(t);
            document.body.replaceChild(e,lvye);
        }
    </script>
</head>
<body>
    <p id="lvye"> 學習網</p>
    <hr />
    輸入標簽:<input id="tag" type="text"/><br />
    輸入文本:<input id="txt" type="text"/><br />
    <input type="button" value="替換" onclick="replace()" />
</body>
</html>

在浏覽器預覽效果如下:

分析:

當我們在第1個文本框輸入“h1”,第2個文本框輸入字符串“JavaScript”,然後點擊“替換按鈕”,浏覽器預覽效果如下:

由於id為lvye的p元素父節點為body,所以根據替換節點的語法“obj.replaceChild(new,old)”應該判斷得出obj應該是body元素。大家一定要理解好這一句代碼“document.body.replaceChild(e,lvye);”。

也就是說,想要實現替換節點,就必須找到3點:

(1)新節點;

(2)被替換的子節點;

(3)被替換子節點的父節點;

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function replace() {
            //獲取兩個文本框的值
            var tag = document.getElementById("tag").value;
            var txt = document.getElementById("txt").value;
            //獲取p元素
            var lvye = document.getElementById("lvye");
            //根據兩個文本框的值創建新節點
            var e = document.createElement(tag);
            var t = document.createTextNode(txt);
            e.appendChild(t);
            document.getElementById("wrap").replaceChild(e,lvye);
        }
    </script>
</head>
<body>
    <div id="wrap">
        <p id="lvye"> 學習網</p>
        <hr />
        輸入標簽:<input id="tag" type="text"/><br />
        輸入文本:<input id="txt" type="text"/><br />
        <input type="button" value="替換" onclick="replace()" />
    </div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

由於id為lvye的p元素的父節點不是body了,也就是說使用“document.body.replaceChild(e,lvye);”這句就行不通了。因此必須重新獲取p元素的父節點才能使用replaceChild()方法,不然浏覽器就會報錯。大家要好好對比這2個例子理解一下。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved