色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

高效將字符串轉(zhuǎn)換為文檔碎片(JavaScript)

  我在Javascript 動(dòng)態(tài)插入技術(shù)》中,就介紹了用innerHTML轉(zhuǎn)換為文檔碎片的技術(shù)了,這個(gè)被各大類(lèi)庫(kù)所取用。但事實(shí)上,如果我們的字符串沒(méi)有th,tbody,col等需要通過(guò)包裝才能動(dòng)態(tài)生成的標(biāo)簽,也沒(méi)有那個(gè)特?zé)┤说膕cript標(biāo)簽,我們?cè)谔岣咝阅苌线€是有許多方法,如insertAdjacentHTML。但想使用insertAdjacentHTML,限制非常多的,如在IE下避開(kāi)innerHTML為只讀的元素,F(xiàn)F需要很高的版本才支持,加之調(diào)用對(duì)象(如jQuery)的元素往往只能是節(jié)點(diǎn),不能是字符串,因此很多情況下,我們還是先需要把它轉(zhuǎn)換為節(jié)點(diǎn)集合,而今天我介紹的是使用createContextualFragment直接將字符串轉(zhuǎn)換為文檔碎片!

  傳統(tǒng)的innerHTML方式會(huì)產(chǎn)生一個(gè)多余的div元素做轉(zhuǎn)換器,然后再使用createDocumentFragment創(chuàng)建一個(gè)文檔碎片,一個(gè)個(gè)節(jié)點(diǎn)轉(zhuǎn)移上去。如果使用createContextualFragment就可以避免這一步了。

//http://www.cnblogs.com/rubylouvre/archive/2011/04/15/2016800.html
var str = '<div><strong>test</strong></div>';
var range =document.createRange();
range.selectNodeContents(document.documentElement);
var fragment =range.createContextualFragment(str);
document.body.appendChild(fragment);

it知識(shí)庫(kù)高效將字符串轉(zhuǎn)換為文檔碎片(JavaScript),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 香港 | 方山县| 陈巴尔虎旗| 天气| 枣庄市| 常德市| 靖宇县| 新巴尔虎右旗| 甘德县| 三门县| 出国| 淳化县| 利辛县| 巴楚县| 枝江市| 贵南县| 鲁山县| 泽库县| 抚松县| 东丰县| 山东省| 合山市| 景宁| 大丰市| 神农架林区| 阳泉市| 定西市| 彩票| 阳春市| 威海市| 屯门区| 布拖县| 海城市| 兴安县| 西吉县| 黄山市| 荥经县| 泾川县| 吉林省| 五河县| 蚌埠市|