以一种似乎简单的方式创造DOM
最近在写 bp-player ,在项目中遇到了需要制作一个右键菜单栏的问题,然后我前后写了两次才写出来,其中发现构建一个DOM挺麻烦的,于是自己写着写着就成了现在的cd.js
,那么这个然并卵的轮子到底怎么用呢?
首先下载源码……
https://github.com/VecHK/bp-player/blob/master/script/cd.js
其次加载进来……
调用的话只需用$c
就行了
1234567891011let ele = $c('div');//返回一个div标签,等效于 document.createElement('div');let source = $c('div');$(source) === source; //true//如果以一个DOM节点作为参数传入则返回这个DOM节点
好,讲完 三分之二 的内容了(你在逗我)
如果传入的是一个纯对象[1]的话
12345678910111213141516171819202122$c({ id: 'this-is-id', class: 'girigiri', html: '<b>哦是么这不是一个粗体字</b>', tag: 'main', event: { 'click': function (){ alert('你点到我了,赔钱'); } }, css: ` position: fixed; width: 100%; height: 100%; left: 0; top: 0; background: rgba(255, 255, 255, 0.5); `});
- 当然,这个对象还包括
text
,只是我没写。 - 当然,这个对象的
html
属性还可以是 DOM元素,也还可以是个纯对象(这样的话就是递归了) - 当然,class还可以写成数组的形式……
- 当然,tag还可以是DOM,如果是DOM的话直接就在这个DOM上进行 DOM构建
- 当然,我也不会说css还支持对象的写法[2]