24 Star 40 Fork 10

南漂一卒/iQuery

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
parseHTML.js 1.56 KB
一键复制 编辑 原始数据 按行查看 历史
define(['../object/index'], function ($) {
var TagWrapper = $.extend(
{
area: {before: '<map>'},
legend: {before: '<fieldset>'},
param: {before: '<object>'}
},
$.makeSet(['caption', 'thead', 'tbody', 'tfoot', 'tr'], {
before: '<table>',
after: '</table>',
depth: 2
}),
$.makeSet(['th', 'td'], {
before: '<table><tr>',
depth: 3
}),
$.makeSet(['optgroup', 'option'], {before: '<select multiple>'})
),
DOM = self.document;
return function (HTML) {
var tag = HTML.match(
/^\s*<([^\s\/\>]+)\s*([^<]*?)\s*(\/?)>([^<]*)((<\/\1>)?)([\s\S]*)/
) || [ ];
if (tag[5] === undefined) tag[5] = '';
if (
(tag[5] && (! (tag.slice(2, 5).join('') + tag[6]))) ||
(tag[3] && (! (tag[2] + tag.slice(4).join(''))))
)
return [DOM.createElement( tag[1] )];
var wrapper = TagWrapper[ tag[1] ], box = DOM.createElement('div');
if (! wrapper)
box.innerHTML = HTML;
else {
box.innerHTML =
wrapper.before + HTML + (wrapper.after || '');
box = $.trace(box, 'firstChild', wrapper.depth || 1)
.slice(-1)[0];
}
return $.each($.makeArray( box.childNodes ), function () {
return this.remove();
});
};
});
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/Tech_Query/iQuery.git
git@gitee.com:Tech_Query/iQuery.git
Tech_Query
iQuery
iQuery
master

搜索帮助