js document.createTextNode()創建文本節點詳解


 在 JavaScript中,可以創建各種類型的節點。

下面列出常用的創建節點的方法:

方法 說明

createElement() 創建一個元素節點 
createTextNode() 創建一個文本節點 
createComment() 創建一個文本節點 
createDocumentFragment() 創建文檔碎片節點

以上四種方法都是 document 對象的方法。
 
createElement()createElement()用來創建一個元素節點,即 nodeType=1 的節點。

語法:
    document.createElement(tagName)
其中,tagName 為HTML標簽的名稱,並將返回一個節點對象。

例如,創建<div>標簽和<p>標簽的語句如下:
 

 代碼如下 復制代碼
var ele_div=document.createElement("div");
var ele_p=document.createElement("p");createTextNode()createTextNode()


用來創建一個注釋節點,即 nodeType=8 的節點。

語法:

    document.createComment(comment)

其中,comment 為注釋的內容,並將返回一個節點對象。

例如,創建一個注釋節點,內容為“ 這是一個注釋節點 ”:
 

 代碼如下 復制代碼
var ele_comment=document.createComment(" 這是一個注釋節點 ");
createDocumentFragment()createDocumentFragment()

用來創建文檔碎片節點。

文檔碎片節點是若干DOM節點的集合,可以包括各種類型的節點,如 元素節點、文本節點、注釋節點 等。文檔碎片節點在創建之初是空的,需要向它添加節點。

語法:

document.createDocumentFragment();

例如,創建一個文檔碎片節點,並將它賦值給變量:

 代碼如下 復制代碼
 
var ele_fragment=document.createDocumentFragment();

可以使用document.createTextNode()創建新文本節點,這個方法接受一個參數——要插入節點中的文本。與設置已有文本節點的值一樣,作為參數的文本也將按照HTML或XML的格式進行編碼:

 代碼如下 復制代碼

var textNode = document.createTextNode("<strong>Hello</strong> world!");

在創建新文本節點的同時,也會為其設置ownerDocument屬性。不過,除非把新節點添加到文檔樹中,否則我們不會在瀏覽器窗口中看到新節點。下面的代碼會創建一個<div>元素並向其中添加一條消息:

 代碼如下 復制代碼

var element = document.createElement("div");
element.className = "message";
var textNode = document.createTextNode("Hello world!");
element.appendChild(textNode);
document.body.appendChild(element);

這個例子創建了一個新<div>元素並為它指定了值為“message”的class特性。然后,又創建了一個文本節點,並將其添加到前面創建的元素中。最后一步,就是將這個元素添加到了文檔中的<body>元素中,這樣可以在瀏覽器中看到新創建的元素和文本節點了。

一般情況下,每個元素只有一個文本子節點。不過,在某些情況下也可能包含多少個文本子節點,如下面的例子所示:

 代碼如下 復制代碼
var element = document.createElement("div");
element.className = "message";
var textNode = document.createTextNode("Hello world!");
element.appendChild(textNode);
var anotherTextNode = document.createTextNode("Yippee!");
element.appendChild(anotherTextNode);
document.body.appendChild(element);

如果兩個文本節點是相鄰的同胞節點,那么這兩個節點中的文本就會連起來顯示,中間不會有空格

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM