亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

[js高手之路]HTML標簽解釋成DOM節點的實現方法

2019-11-19 15:36:08
字體:
來源:轉載
供稿:網友

最近在封裝一個開源框架,已經寫了500行, 已經具備jquery的大多數常用功能,后面還會擴展大量的工具函數和MVVM雙向驅動等功能。跟jquery的使用方法完全一樣,jquery的選擇器,幾乎都能支持,為什么說這事,跟這篇文章的主題有毛關系呢?因為這篇文章要講的就是我在寫框架過程中碰到的一個問題,封裝jquery的after方法,支持DOM和html標簽兩種用法,html標簽傳參,我要把html解釋成DOM結構,用DOM的方法插入.

首先,我們寫個通用的html標簽:

<div onclick="test();" name="test" id="test">this is a test string</div>

這個html包括了事件,樣式,屬性,內容.

我們接著用正則把這個html的每一部分匹配出來,我們需要的是:

1、標簽名, 因為創建dom節點的時候需要

2、屬性和內容都要單獨分離出來

為了便于創建dom,我們用一個json保存,比如這個標簽,我們要處理成的最終結果是:

{id:"testinner:"this is a test stringname:"test"onclick:"test();"style:"color:red;background:green;"tag:"div"}

如果有了這個結構,只要拿到對應的鍵和值,組裝成一個dom就可以搞定了

var o = document.createElement( obj['tag'] );  o.innerHTML = obj['inner'];  delete obj['inner'];  delete obj['tag'];  for( var key in obj ){   o.setAttribute( key, obj[key] );  }   document.body.appendChild( o );

解釋思路已經明確,那么我們首先就要把html標簽的每部分用正則表達式匹配出來

var re = /<(/w+/s*)(/w+[=][/'/"](.*)?[/'/"]/s*)*>(.*)?<///w+>/;  var str = '<div onclick="test();" name="test" id="test">this is a test string</div>';  var res = str.match(re);

恩,這就是我們匹配出來的結果,從圖中可以看出,

res[1]存儲的是標簽名稱,只需要把兩邊的空格去掉

res[2]存儲的是屬性和值,我們用split函數按空格切割一次,再用split函數按'='切割一次,就能分解出來了

res[4]存儲的就是字符串的內容

上面3部分,只要用循環和字符串稍加處理就可以得出目標結果了

那么完整的處理代碼就是:

var re = /<(/w+/s*)(/w+[=][/'/"](.*)?[/'/"]/s*)*>(.*)?<///w+>/;  var str = '<div onclick="test();" name="test" id="test">this is a test string</div>';  var res = str.match(re);  var tagName = null, attrList = [], arr = [], obj = {};  if( res[1] ) {   tagName = res[1].trim();   obj['tag'] = tagName;  }  if( res[4] ) {   obj['inner'] = res[4];  }  if ( res[2] ) {   attrList = res[2].split( //s+/ );   for( var i = 0, len = attrList.length; i < len; i++ ){    arr = attrList[i].split("=");    // console.log( arr );    obj[arr[0]] = arr[1].replace( /(^[/'/"]+|[/'/"]$)/g, function(){     return '';    } );   }  }  var o = document.createElement( obj['tag'] );  o.innerHTML = obj['inner'];  delete obj['inner'];  delete obj['tag'];  for( var key in obj ){   o.setAttribute( key, obj[key] );  }   document.body.appendChild( o );

可以自行封裝一個函數,我相信你應該輕易就能封裝出來吧.

以上這篇[js高手之路]HTML標簽解釋成DOM節點的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠爱在线视频一区| 91国产精品视频在线| 欧美电影院免费观看| 不卡在线观看电视剧完整版| 欧美激情精品久久久久久| 97视频免费在线看| 国产精品久久久久久久久久三级| 一个人www欧美| 国产女同一区二区| 久久影视电视剧免费网站清宫辞电视| 国产精品流白浆视频| 色哟哟亚洲精品一区二区| 一区二区亚洲欧洲国产日韩| 亚洲男人天堂2019| 欧美视频一二三| 欧美亚洲另类视频| 亚洲国产美女久久久久| 日韩色av导航| 成人天堂噜噜噜| 国产成人久久精品| 国产精品久久久久久av福利软件| 久久人人爽亚洲精品天堂| 国产又爽又黄的激情精品视频| 92福利视频午夜1000合集在线观看| 欧美精品aaa| 欧美日韩国产精品专区| 欧美日韩黄色大片| 另类专区欧美制服同性| 欧美高清在线视频观看不卡| 555www成人网| 国产精品一区二区久久国产| 91精品啪在线观看麻豆免费| 中文字幕在线看视频国产欧美| 日产日韩在线亚洲欧美| 国产成人精品一区二区在线| 亚洲色在线视频| 日韩欧美成人免费视频| 欧美激情三级免费| 成人免费激情视频| 中文欧美日本在线资源| 成人a在线视频| 日韩国产精品亚洲а∨天堂免| 国产欧美一区二区三区在线看| 日韩高清有码在线| 91精品视频在线免费观看| 亚洲大尺度美女在线| 成人免费视频在线观看超级碰| 欧美成人三级视频网站| 国产精品视频色| 久久亚洲精品一区| 136fldh精品导航福利| 亚洲免费视频观看| 欧美精品电影免费在线观看| 热re99久久精品国产66热| 91精品国产乱码久久久久久蜜臀| 国产欧美日韩免费看aⅴ视频| 欧美日韩国产精品一区二区三区四区| 伦理中文字幕亚洲| 岛国av一区二区在线在线观看| 九九热精品视频在线播放| 久久亚洲私人国产精品va| 狠狠躁天天躁日日躁欧美| 亚洲黄页视频免费观看| 成人妇女免费播放久久久| 国产91在线播放精品91| 国产日韩精品视频| 久久久久久高潮国产精品视| 欧美亚洲国产另类| 日本亚洲欧美三级| 国产午夜精品全部视频播放| 国产日韩欧美在线观看| 日韩免费av在线| 亚洲一二在线观看| 国产不卡av在线| 亚洲毛片在线观看.| 亚洲精品国偷自产在线99热| 欧美在线影院在线视频| 91国产在线精品| 亚洲国产成人久久| 欧美日韩激情美女| 日韩欧美国产黄色| 成人女保姆的销魂服务| 欧美日韩福利在线观看| 一区二区欧美日韩视频| 亚洲欧美日韩天堂一区二区| 国产精自产拍久久久久久| 日韩一级裸体免费视频| 欧美极品少妇xxxxⅹ喷水| www.亚洲免费视频| 成人av电影天堂| 日韩成人在线电影网| 日韩美女福利视频| 成人免费视频a| 亚洲一区二区三| 国产精品网站大全| 日韩在线免费观看视频| 久久福利网址导航| 日韩在线视频播放| 久热精品视频在线免费观看| 91亚洲精华国产精华| 久久精品国产亚洲| 亚洲网在线观看| 久久影院中文字幕| 91成人免费观看网站| 萌白酱国产一区二区| 国产亚洲精品激情久久| 久久久影视精品| 日韩av在线最新| 欧美一区二区三区免费观看| 高清欧美性猛交xxxx黑人猛交| 久久视频在线免费观看| 日韩美女在线播放| 亚洲激情视频网站| 亚洲精品欧美极品| 亚洲一区999| 日韩欧美一区二区在线| 亚洲欧美日韩一区在线| 久久久精品视频成人| 久久亚洲春色中文字幕| 亚洲香蕉伊综合在人在线视看| 欧美激情一级欧美精品| 色偷偷av一区二区三区| 欧美激情亚洲视频| 精品成人69xx.xyz| 中文字幕一区二区三区电影| 午夜精品三级视频福利| 亚洲黄页网在线观看| 国产精品欧美日韩| 精品视频久久久久久| 欧美精品videosex牲欧美| 精品成人久久av| 伊人久久久久久久久久久久久| 日韩美女免费观看| 欧美性xxxxx极品娇小| 亚洲综合av影视| 日韩国产欧美精品一区二区三区| 国产精品成人免费电影| 久久久久久久成人| 91亚洲国产成人精品性色| 国产精品久久久久久久久久久久久| 日韩欧美亚洲范冰冰与中字| 亚洲午夜性刺激影院| 91爱视频在线| 欧美孕妇与黑人孕交| 97国产suv精品一区二区62| 欧美一级大胆视频| 亚洲一区亚洲二区亚洲三区| 亚洲人成电影网站色xx| 日本精品视频网站| 国产欧美精品一区二区| 97精品免费视频| 一区国产精品视频| 午夜精品三级视频福利| 国产日韩精品在线观看| 久久精品青青大伊人av| 狠狠综合久久av一区二区小说| 日韩在线观看免费av| 色妞在线综合亚洲欧美| 最近2019年好看中文字幕视频| 欧美成人午夜激情视频| 7777kkkk成人观看| 黄色一区二区三区| 91精品国产高清自在线| 久久久免费精品|