1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /**
- * 创建DOM 节点
- * @param {String} str Dom 字符串
- * @return {HTMLElement} DOM 节点
- */
- var TABLE;
- var TABLE_TR;
- var FRAGMENT_REG;
- var CONTAINERS;
- function initConstants() {
- TABLE = document.createElement('table');
- TABLE_TR = document.createElement('tr');
- FRAGMENT_REG = /^\s*<(\w+|!)[^>]*>/;
- CONTAINERS = {
- tr: document.createElement('tbody'),
- tbody: TABLE,
- thead: TABLE,
- tfoot: TABLE,
- td: TABLE_TR,
- th: TABLE_TR,
- '*': document.createElement('div'),
- };
- }
- export default function createDom(str) {
- if (!TABLE) {
- initConstants();
- }
- var name = FRAGMENT_REG.test(str) && RegExp.$1;
- if (!name || !(name in CONTAINERS)) {
- name = '*';
- }
- var container = CONTAINERS[name];
- str = typeof str === 'string' ? str.replace(/(^\s*)|(\s*$)/g, '') : str;
- container.innerHTML = '' + str;
- var dom = container.childNodes[0];
- if (dom && container.contains(dom)) {
- container.removeChild(dom);
- }
- return dom;
- }
- //# sourceMappingURL=create-dom.js.map
|