编号 | 名称 | 拼音 |
---|
.ac-main-table { table-layout:fixed; width:100%; font-size:14px; color:#000; } .ac-main-table th { line-height:30px; height:30px; background-color:#f5f5f5; text-align:center; border:1px solid #ccc; } .ac-main-table td { padding:10px; line-height:22px; text-align:center; border:1px solid #ccc; } .ac-main-table td>p { display:inline-block; text-align:left; }
简单构建 重复dom 的js插件
本插件不依赖jquery功能是根据你提供的数组数据进行遍历, 构建出只是结构一致, 数据不同的重复元素, 功能类似 vue 的v-for,angular 的ng - repeatie9 + 写法如下 html: (这个是模板, 两个 '#'之间的是要替换数据的部分)
<table class="ac-main-table layer-table"> <thead> <tr> <th width="130px">编号</th> <th width="130px">名称</th> <th width="130px">拼音</th> </tr> </thead> <tbody id="J-pai-search-data"> </tbody> </table> <script id="J-my-template-demo" type="text/html"> <tr> <td><a href="#href#" data-name="#name#" data-number="#number#" class="ac-item-name J-item-name">#number#</a></td> <td>#name#</td> <td>#letter#</td> </tr> </script>
js:
new srepeat({ bucket: '#j-pai-search-data', data: data, template: '#j-my-template-demo', keydir: { "href": "href", "name": "name", "number": "number", "letter": "letter.abc", "key": "key" }, defaultval: { href: "javascriptt:void(0);" } }).init();
js 参数说明:
/** * option 参数 * * bucket: css选择器, 如果提供,生成完重复dom后,会将这些dom放入bucket指定的容器 * template: css选择器, 存放模板dom的父节点,用于获取重复dom模板 * data: 数组, 根据data遍历,将对应的数据填入repeatdom * * keydir: 对象, 模板中的key与正式json数据中的key的查询字典 * defaultval: 对象, 如果键对应的值是固定的,则可传默认值,优先级大于keydir * * */
例子提供的假数据:
var data = [{ "number": 1, "name": "第一行重复元素", "href": "http://456.com.cn", "letter": { "abc": "di yi hang" } }, { "number": 2, "href": "http://123.com.cn", "name": "第二行重复元素", "letter": { "abc": "di er hang" } }];