新建一个html文件,内容如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <title>form</title>
  7.  
  8. <script type="text/javascript" src="js/vue.min.js"></script>
  9.  
  10. <style type="text/css">
  11. #table table {
  12. width: 100%;
  13. font-size: 14px;
  14. border: 1px solid #eee
  15. }
  16.  
  17. #table {
  18. padding: 0 10px;
  19. }
  20.  
  21. table thead th {
  22. background: #f5f5f5;
  23. padding: 10px;
  24. text-align: left;
  25. }
  26.  
  27. table tbody td {
  28. padding: 10px;
  29. text-align: left;
  30. border-bottom: 1px solid #eee;
  31. border-right: 1px solid #eee;
  32. }
  33.  
  34. table tbody td span {
  35. margin: 0 10px;
  36. cursor: pointer;
  37. }
  38.  
  39. .delete {
  40. color: red;
  41. }
  42.  
  43. .edit {
  44. color: #008cd5;
  45. }
  46.  
  47. .add {
  48. border: 1px solid #eee;
  49. margin: 10px 0;
  50. padding: 15px;
  51. }
  52.  
  53. input {
  54. border: 1px solid #ccc;
  55. padding: 5px;
  56. border-radius: 3px;
  57. margin-right: 15px;
  58. }
  59.  
  60. button {
  61. background: #008cd5;
  62. border: 0;
  63. padding: 4px 15px;
  64. border-radius: 3px;
  65. color: #fff;
  66. }
  67.  
  68. #mask {
  69. background: rgba(0, 0, 0, .5);
  70. width: 100%;
  71. height: 100%;
  72. position: fixed;
  73. z-index: 4;
  74. top: 0;
  75. left: 0;
  76. }
  77.  
  78. .mask {
  79. width: 300px;
  80. height: 250px;
  81. background: rgba(255, 255, 255, 1);
  82. position: absolute;
  83. left: 0;
  84. top: 0;
  85. right: 0;
  86. bottom: 0;
  87. margin: auto;
  88. z-index: 47;
  89. border-radius: 5px;
  90. }
  91.  
  92. .title {
  93. padding: 10px;
  94. border-bottom: 1px solid #eee;
  95. }
  96.  
  97. .title span {
  98. float: right;
  99. cursor: pointer;
  100. }
  101.  
  102. .content {
  103. padding: 10px;
  104. }
  105.  
  106. .content input {
  107. width: 270px;
  108. margin-bottom: 15px;
  109. }
  110. </style>
  111.  
  112. </head>
  113. <body>
  114. <div id="table">
  115. <div class="add">
  116. <input type="text" v-model="addDetail.title" name="title" value="" placeholder="标题"/>
  117. <input type="text" v-model="addDetail.user" name="user" value="" placeholder="发布人"/>
  118. <input type="date" v-model="addDetail.dates" name="date" value="" placeholder="发布时间"/>
  119. <button @click="adddetail">新增</button>
  120. </div>
  121. <table cellpadding="0" cellspacing="0">
  122. <thead>
  123. <tr>
  124. <th>序号</th>
  125. <th>标题</th>
  126. <th>发布人</th>
  127. <th>发布时间</th>
  128. <th>操作</th>
  129. </tr>
  130. </thead>
  131. <tbody>
  132. <tr v-for="(item,index) in newsList">
  133. <td width="5%">{{index+1}}</td>
  134. <td>{{item.title}}</td>
  135. <td width="10%">{{item.user}}</td>
  136. <td width="15%">{{item.dates}}</td>
  137. <td width="10%"><span @click="deletelist(item.id,index)" class="delete">删除</span><span class="edit" @click="edit(item)">编辑</span>
  138. </td>
  139. </tr>
  140. </tbody>
  141. </table>
  142. <div id="mask" v-if="editlist">
  143. <div class="mask">
  144. <div class="title">
  145. 编辑
  146. <span @click="editlist=false">x</span>
  147. </div>
  148. <div class="content">
  149. <input type="text" v-model="editDetail.title" name="title" value="" placeholder="标题"/>
  150. <input type="text" v-model="editDetail.user" name="user" value="" placeholder="发布人"/>
  151. <input type="date" v-model="editDetail.dates" name="date" value="" placeholder="发布时间"/>
  152. <button @click="update">更新</button>
  153. <button @click="editlist=false">取消</button>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. <script>
  159. var app = new Vue({
  160. el: '#table',
  161. data: {
  162. addDetail: {},
  163. editlist: false,
  164. editDetail: {},
  165. newsList: [{title: 'linux系统运维', user: '林冲', dates: '2018-02-19', id: "1111111111"},
  166. {title: 'python全栈开发', user: '宋江', dates: '2018-02-29', id: "22222222222"},
  167. {title: '流畅的python', user: '黉攟', dates: '2018-05-09', id: "11111112222"},
  168. {title: 'google运维之道', user: '王力宏', dates: '2018-09-09', id: "3333333333"},
  169. {title: '有趣的django', user: '与小白', dates: '2018-02-09', id: "23322445"}],
  170. editid: ''
  171. },
  172. mounted() {
  173.  
  174. },
  175. methods: {
  176.  
  177. //新增
  178. adddetail() {
  179. //这里的思路应该是把this.addDetail传给服务端,然后加载列表this.newsList
  180. //this.newsList.push(this.addDetail)
  181. this.newsList.push({
  182. title: this.addDetail.title,
  183. user: this.addDetail.user,
  184. dates: this.addDetail.dates,
  185. })
  186.  
  187. //axios.post('url',this.addDetail).then((res) =>{
  188. //若返回正确结果,清空新增输入框的数据
  189. //this.addDetail.title = ""
  190. //this.addDetail.user = ""
  191. //this.addDetail.dates = ""
  192. //})
  193.  
  194. },
  195. //删除
  196. deletelist(id, i) {
  197. this.newsList.splice(i, 1);
  198. //这边可以传id给服务端进行删除 ID = id
  199. //axios.get('url',{ID:id}).then((res) =>{
  200. // 加载列表
  201. //})
  202. },
  203. //编辑
  204. edit(item) {
  205. this.editDetail = {
  206. title: item.title,
  207. user: item.user,
  208. dates: item.dates,
  209. id: item.id
  210. };
  211. this.editlist = true;
  212. this.editid = item.id
  213.  
  214. },
  215. //确认更新
  216. update() {
  217. //编辑的话,也是传id去服务端
  218. //axios.get('url',{ID:id}).then((res) =>{
  219. // 加载列表
  220. //})
  221. let _this = this
  222. for (let i = 0; i < _this.newsList.length; i++) {
  223. if (_this.newsList[i].id == this.editid) {
  224. _this.newsList[i] = {
  225. title: _this.editDetail.title,
  226. user: _this.editDetail.user,
  227. dates: _this.editDetail.dates,
  228. id: this.editid
  229. };
  230. this.editlist = false
  231. }
  232. }
  233. }
  234. }
  235. })
  236. </script>
  237. </body>
  238. </html>

浏览网页如下:

编辑效果

vue.js动态表格增删改代码的更多相关文章

  1. javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行

    jsp页面表格布局Html代码 <body onload="show()"> <center> <input type="text" ...

  2. vue实战(一):利用vue与ajax实现增删改查

    vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> ...

  3. Java对象转JSON时如何动态的增删改查属性

    1. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON字符串增加额外字段 假如我们有这样结 ...

  4. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...

  5. asp.net下利用MVC模式实现Extjs表格增删改查

    在网上看到有很多人写extjs下的表格控件的增删改查,但是大多数都是直接从后台读取数据,很少有跟数据库进行交互的模式. 今天就来写一个这样的例子.欢迎大家交流指正. 首先简单介绍一下MVC模式,MVC ...

  6. vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  7. vue+express+mongodb 实现 增删改查

    一.创建一个vue项目 用脚手架vue-cli搭建一个项目,数据请求用axios方式,写几个按钮用来调接口(vue这块不做多解释,不懂的可以先去官网学习vue-cli:https://cli.vuej ...

  8. 基于Vue.js的表格分页组件

    有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage. 不了解Vue.js的童鞋 ...

  9. Vue.js的表格分页组件

    转自:http://www.cnblogs.com/Leo_wl/p/5522299.html 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更 ...

随机推荐

  1. 【不错】MySQL 事务隔离级别

    一.事务描述 1.事务的四个特性 ACID 1. A:原子性 = 一个事务或者都成功.或者都失败: 2. C:一致性 = 在整个事务的生命周期里面,查询到的数据是一致的: MVCC多版本并发控制:利用 ...

  2. ubuntu18.04 安装mongodb并使用Robo 3T连接Mongodb数据库

    1.前提: 系统:ubuntu18.04  64位 数据库:mongodb GUI:Robo 3T  2018.3.0 描述: mongodb 安装在局域网内的ubuntu的机子上面,  在win 下 ...

  3. [转帖]mysql.sock的作用

    mysql.sock的作用 链接:http://blog.itpub.net/28602568/viewspace-1797619/ 标题:mysql.sock的作用 作者:lōττéry©版权所有[ ...

  4. 画一个心送给心爱的小姐姐,Python绘图库Turtle

    Python绘图库Turtle Turtle介绍 Turtle是Python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块. 一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对 ...

  5. JSP中九大内置对象及其作用

    jsp中有九大内置对象分别为:request,response,session,application,out,pageContext,page,config,exception. request:请 ...

  6. idea无法使用注解@Data解决方法

    @Data相关依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  7. 远程连接mysql出现1130的错误

    数据库权限不足 连接数据以后执行以下命令 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的数据库密码' WITH GRANT OP ...

  8. oracle给用户赋dblink权限

    create database link 别名(可任意起) connect to 需要连接库的用户名identified by 需要连接库的用户名 using '(DESCRIPTION =(ADDR ...

  9. 115-基于TI TMS320DM6467无操作系统Camera Link智能图像分析平台

    基于TI TMS320DM6467无操作系统Camera Link智能图像分析平台 1.板卡概述 该板卡是我公司推出的一款具有高可靠性.效率大化.无操作系统的智能视频处理卡,是机器视觉开发上的选.  ...

  10. FPGA引脚锁定 注意err和高阻状态

    1.fpga没有用的的管脚一定要设置成高阻状态设置路径如下: Assignmen->Device->Device&Pin Option->Unused pins->As ...