javascript轉(zhuǎn)換字符串為dom對象(字符串動態(tài)創(chuàng)建dom)
更新時間:2010年05月10日 18:24:17 作者:
那么今天的目的就是教大家怎么去實現(xiàn)一個這樣的方法用來把字符串直接轉(zhuǎn)換為標準的dom對象
前言:
在javascript里面動態(tài)創(chuàng)建標準dom對象一般使用:
var obj = document.createElement('div');
然后再給obj設(shè)置一些屬性。
但是,在實際使用過程中,有些人可能會想,要是能這樣創(chuàng)建標準的dom對象就好了
偽代碼:var obj=strToDom('<div id="div_1" class="div1">Hello World!</div>');
那么今天的目的就是教大家怎么去實現(xiàn)一個這樣的方法用來把字符串直接轉(zhuǎn)換為標準的dom對象
start:
其實實現(xiàn)這樣的一個轉(zhuǎn)換是很簡單的,這里主要是利用了一個屬性innerHTML.
innerHTML,我相信大家都使用過,特別是動態(tài)往一個元素里面插內(nèi)容時使用,這里我還是在介紹下innerHTML,方便于還不太熟悉的人。
innerHTML不是w3c標準,是由ie發(fā)明創(chuàng)造出來的,但是由于這個屬性的方便性,和當時微老大的地位,其它非ie瀏覽器也內(nèi)置了innerHTML并給出了支持。
雖然innerHTML不是w3c標準,但是卻是一個事實標準,這個事實標準很重要,也就是目前主流瀏覽器都支持innerHTML,自然就做到了兼容多瀏覽器。
code:
function parseDom(arg) {
var objE = document.createElement("div");
objE.innerHTML = arg;
return objE.childNodes;
};
短短幾行代碼就實現(xiàn)了轉(zhuǎn)換,我們首先用標準的方法創(chuàng)建一個div出來,在用innerHTML來插入一個元素,其實也就是利用瀏覽器自己的內(nèi)核算法來實現(xiàn)的一個轉(zhuǎn)換。在用childNodes返回出來。
這樣我們就完成了一個字符串到標準dom的轉(zhuǎn)換,巧妙的利用瀏覽器本身的算法,可以用簡單少量的代碼來完成大量復雜的轉(zhuǎn)換,我們不用去解析字符串,而是交給瀏覽器自己來完成,這樣既準確又無誤。
使用:
var obj=parseDom('<div id="div_1" class="div1">Hello World!</div>');
var obj=parseDom('<div id="div_1" class="div1">Hello World!</div><span>多個也沒關(guān)系</span>');
注意:
childNodes返回的是一個類似數(shù)組的list。所以如果是一個元素,要使用這個dom需要這樣使用obj[0]。如果是多個同級的dom轉(zhuǎn)換,可以這樣使用obj[0]、obj[1]…
end
到這里就結(jié)束了,在這里向大家推薦一個我自己寫的js框架,上面的這個方法集成在框架里面了
使用:b$.parseDom('<div id="div_1" class="div1">Hello World!</div>')
bBank 開源Javascript框架
在javascript里面動態(tài)創(chuàng)建標準dom對象一般使用:
var obj = document.createElement('div');
然后再給obj設(shè)置一些屬性。
但是,在實際使用過程中,有些人可能會想,要是能這樣創(chuàng)建標準的dom對象就好了
偽代碼:var obj=strToDom('<div id="div_1" class="div1">Hello World!</div>');
那么今天的目的就是教大家怎么去實現(xiàn)一個這樣的方法用來把字符串直接轉(zhuǎn)換為標準的dom對象
start:
其實實現(xiàn)這樣的一個轉(zhuǎn)換是很簡單的,這里主要是利用了一個屬性innerHTML.
innerHTML,我相信大家都使用過,特別是動態(tài)往一個元素里面插內(nèi)容時使用,這里我還是在介紹下innerHTML,方便于還不太熟悉的人。
innerHTML不是w3c標準,是由ie發(fā)明創(chuàng)造出來的,但是由于這個屬性的方便性,和當時微老大的地位,其它非ie瀏覽器也內(nèi)置了innerHTML并給出了支持。
雖然innerHTML不是w3c標準,但是卻是一個事實標準,這個事實標準很重要,也就是目前主流瀏覽器都支持innerHTML,自然就做到了兼容多瀏覽器。
code:
復制代碼 代碼如下:
function parseDom(arg) {
var objE = document.createElement("div");
objE.innerHTML = arg;
return objE.childNodes;
};
短短幾行代碼就實現(xiàn)了轉(zhuǎn)換,我們首先用標準的方法創(chuàng)建一個div出來,在用innerHTML來插入一個元素,其實也就是利用瀏覽器自己的內(nèi)核算法來實現(xiàn)的一個轉(zhuǎn)換。在用childNodes返回出來。
這樣我們就完成了一個字符串到標準dom的轉(zhuǎn)換,巧妙的利用瀏覽器本身的算法,可以用簡單少量的代碼來完成大量復雜的轉(zhuǎn)換,我們不用去解析字符串,而是交給瀏覽器自己來完成,這樣既準確又無誤。
使用:
復制代碼 代碼如下:
var obj=parseDom('<div id="div_1" class="div1">Hello World!</div>');
var obj=parseDom('<div id="div_1" class="div1">Hello World!</div><span>多個也沒關(guān)系</span>');
注意:
childNodes返回的是一個類似數(shù)組的list。所以如果是一個元素,要使用這個dom需要這樣使用obj[0]。如果是多個同級的dom轉(zhuǎn)換,可以這樣使用obj[0]、obj[1]…
end
到這里就結(jié)束了,在這里向大家推薦一個我自己寫的js框架,上面的這個方法集成在框架里面了
使用:b$.parseDom('<div id="div_1" class="div1">Hello World!</div>')
bBank 開源Javascript框架
您可能感興趣的文章:
- JavaScript動態(tài)創(chuàng)建div屬性和樣式示例代碼
- javascript 動態(tài)創(chuàng)建表格
- javascript動態(tài)創(chuàng)建及刪除元素的方法
- JavaScript動態(tài)創(chuàng)建link標簽到head里的方法
- JavaScript實現(xiàn)動態(tài)創(chuàng)建CSS樣式規(guī)則方案
- JavaScript與DOM組合動態(tài)創(chuàng)建表格實例
- javascript 翻頁測試頁(動態(tài)創(chuàng)建標簽并自動翻頁)
- JavaScript 動態(tài)創(chuàng)建VML的方法
- Javascript動態(tài)創(chuàng)建div的方法
- javascript 動態(tài)創(chuàng)建 Option選項
相關(guān)文章
javascript表單驗證 - Parsley.js使用和配置
大家還記得我們曾經(jīng)介紹過的表單驗證jquery插件jquery.validationEngine吧;天介紹的Parsley同樣也可以幫助你只使用簡單的配置即可實現(xiàn)表單驗證功能,基于它的強大DOM-API,感興趣的你可以不要錯過了哦2013-01-01
JavaScript中對象property的讀取和寫入方法介紹
這篇文章主要介紹了JavaScript中對象property的讀取和寫入方法介紹,本文講解了原型繼承鏈中property的讀取、原型繼承鏈中property的寫入等內(nèi)容,需要的朋友可以參考下2014-12-12
JS 實現(xiàn)倒計時數(shù)字時鐘效果【附實例代碼】
下面小編就為大家?guī)硪黄狫S 實現(xiàn)倒計時數(shù)字時鐘效果【附實例代碼】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做一個參考。2016-03-03
JavaScript?中的單例內(nèi)置對象Global?與?Math
這篇文章主要介紹了JavaScript?中的單例內(nèi)置對象Global與Math,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07
bootstrap table實現(xiàn)單擊單元格可編輯功能
這篇文章主要為大家詳細介紹了bootstrap table實現(xiàn)單擊單元格可編輯功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
JavaScript 異步調(diào)用框架 (Part 6 - 實例 & 模式)
我們用了5篇文章來討論如何編寫一個JavaScript異步調(diào)用框架(問題 & 場景、用例設(shè)計、代碼實現(xiàn)、鏈式調(diào)用、鏈式實現(xiàn)),現(xiàn)在是時候讓我們看一下在各種常見開發(fā)情景中如何使用它了。2009-08-08

