5_todolist.html 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. #app{
  10. width: 500px;
  11. }
  12. .close{
  13. float: right;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div id="app">
  19. <h2>todolist</h2>
  20. <hr>
  21. <div>
  22. 名称:<input type="text" v-model="name">
  23. 价格:<input type="text" v-model="price">
  24. <button @click="add">提交</button>
  25. </div>
  26. <div>
  27. <input type="text" v-model="seachVal">
  28. <button @click="search()">搜索</button>
  29. </div>
  30. <ul>
  31. <li v-for="(obj,index) in list" v-show="obj.isShow">
  32. <input type="checkbox">
  33. <span>{{obj.name}}</span>
  34. <span>{{obj.price}}</span>
  35. <span class="close" @click="del(index)">[X]</span>
  36. </li>
  37. </ul>
  38. <div>
  39. <button>删除选择</button>
  40. <span>总价</span>
  41. </div>
  42. </div>
  43. <script src="vue.js"></script>
  44. <script>
  45. new Vue({
  46. el:"#app",
  47. data:{
  48. list:[{
  49. name:'苹果',
  50. price:5,
  51. isShow: true
  52. },{
  53. name:'香蕉',
  54. price:6,
  55. isShow: true
  56. }],
  57. name:'',
  58. price:'',
  59. seachVal:''
  60. },
  61. methods:{
  62. add(){
  63. this.list.push({
  64. name: this.name,
  65. price: this.price,
  66. isShow: true
  67. })
  68. this.name = ''
  69. this.price = ''
  70. },
  71. del(index){
  72. this.list.splice(index,1)
  73. },
  74. search(){
  75. this.list.forEach((obj)=>{
  76. if(obj.name.includes(this.seachVal)){
  77. obj.isShow = true
  78. } else {
  79. obj.isShow = false
  80. }
  81. })
  82. this.seachVal = ''
  83. }
  84. }
  85. })
  86. </script>
  87. </body>
  88. </html>