日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Javascript創(chuàng)建節(jié)點(diǎn)的方法

 宜賓翠屏區(qū) 2019-04-10

(1)document.createElement(tagName)
createElement()用來創(chuàng)建一個元素節(jié)點(diǎn),即 nodeType=1 的節(jié)點(diǎn)。其中,tagName 為HTML標(biāo)簽的名稱,并將返回一個節(jié)點(diǎn)對象。
(2)document.createTextNode(text)
createTextNode()用來創(chuàng)建一個文本節(jié)點(diǎn),即 nodeType=3 的節(jié)點(diǎn)。其中,text 為文本節(jié)點(diǎn)的內(nèi)容,并將返回一個節(jié)點(diǎn)對象。
(3)document.createComment(comment)
createComment()用來創(chuàng)建一個注釋節(jié)點(diǎn),即 nodeType=8 的節(jié)點(diǎn)。其中,comment 為注釋的內(nèi)容,并將返回一個節(jié)點(diǎn)對象。
(4)document.createDocumentFragment();
createDocumentFragment() 用來創(chuàng)建文檔碎片節(jié)點(diǎn)。文檔碎片節(jié)點(diǎn)是若干DOM節(jié)點(diǎn)的集合,可以包括各種類型的節(jié)點(diǎn),如 元素節(jié)點(diǎn)、文本節(jié)點(diǎn)、注釋節(jié)點(diǎn) 等。文檔碎片節(jié)點(diǎn)在創(chuàng)建之初是空的,需要向它添加節(jié)點(diǎn)。

例如,創(chuàng)建<div>標(biāo)簽如下:
vvarpp = document.createElement("div") //以下代碼是用于創(chuàng)建 <div> 元素:
var node=document.createTextNode("這是新段落。");//為 <div> 元素添加文本節(jié)點(diǎn):
pp.appendChild(node);  //將文本節(jié)點(diǎn)添加到 <div> 元素中:
 var element=document.getElementById("div1"); //最后,在一個已存在的元素中添加 p 元素。查找已存在的元素:
element.appendChild(pp);  //添加到已存在的元素中
使用 insertBefore() 方法: 將新元素添加到開始位置

<body>
<div id="div1">
<p id="p1">這是一個段落。</p>
<p id="p2">這是另外一個段落。</p>
</div>

<script>

varpp = document.createElement("div") //以下代碼是用于創(chuàng)建 <div> 元素
var node=document.createTextNode("這是新段落。");//為 <div> 元素添加文本節(jié)點(diǎn)
pp.appendChild(node);  //將文本節(jié)點(diǎn)添加到 <div> 元素中
 var element=document.getElementById("div1"); //最后,在一個已存在的元素中添加 div 元素。查找已存在的元素:
element.appendChild(pp);  //添加到已存在的元素中:
</script>
</body>

另:

for(var i=0;i<5;i++) { 
    var op = document.createElement("span"); 
    var oText = document.createTextNode(i); 
    op.appendChild(oText); 
    document.body.appendChild(op);  
            } 

//先創(chuàng)建文檔碎片
var oFragmeng = document.createDocumentFragment();
for(var i=0;i<10000;i++)

    var op = document.createElement("p"); 
    var oText = document.createTextNode(i); 
    op.appendChild(oText); 
    //先附加在文檔碎片中
oFragmeng.appendChild(op); 
}
//最后一次性添加到document中
document.body.appendChild(oFragmeng);
===========================================

for(var i = 0 ; i < 10; i ++) {
    var p = document.createElement("p");
    var oTxt = document.createTextNode("段落" + i);
    p.appendChild(oTxt);
    document.body.appendChild(p);
}

這段代碼運(yùn)行是沒有問題,但是他調(diào)用了十次document.body.appendChild(),每次都要產(chǎn)生一次頁面渲染。這時(shí)碎片就十分有用了:

var oFragment = document.createDocumentFragment();
1
2
3
4
5
for(var i = 0 ; i < 10; i ++) {
    var p = document.createElement("p");
    var oTxt = document.createTextNode("段落" + i);
    p.appendChild(oTxt);
    oFragment.appendChild(p);<br>}
1

document.body.appendChild(oFragment);

在這段代碼中,每個新的<p />元素都被添加到文檔碎片中,然后這個碎片被作為參數(shù)傳遞給appendChild()。這里對appendChild()的調(diào)用實(shí)際上并不是把文檔碎片追加到body元素中,而是僅僅追加碎片中的子節(jié)點(diǎn),然后可以看到明顯的性能提升,document.body.appenChild()一次替代十次,這意味著只需要進(jìn)行一個內(nèi)容渲染刷新。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多