100 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | ||
| <html lang="en">
 | ||
| <head>
 | ||
|     <meta charset="UTF-8">
 | ||
|     <title>动态列表</title>
 | ||
|     <style>
 | ||
|     	* {
 | ||
| 			margin: 0;
 | ||
| 			padding: 0;
 | ||
| 		}
 | ||
| 		body {
 | ||
| 			background-color: #000;
 | ||
| 			color: #fff;
 | ||
| 		}
 | ||
| 		#app {
 | ||
| 			width: 40%;
 | ||
| 			margin: 20px auto;
 | ||
| 		}
 | ||
| 		#fruits>li {
 | ||
| 			width: 90%;
 | ||
| 			height: 50px;
 | ||
| 			background-color: #6ca;
 | ||
| 			margin: 4px 0;
 | ||
| 			text-align: center;
 | ||
| 			font-size: 20px;
 | ||
| 			list-style-type: none;
 | ||
| 			line-height: 50px;
 | ||
| 		}
 | ||
| 		#fruits>li>a {
 | ||
| 			float: right;
 | ||
| 			color: #fff;
 | ||
| 			text-decoration: none;
 | ||
| 			margin-right: 10px;
 | ||
| 		}
 | ||
| 		#fruits+div {
 | ||
| 			margin-top: 20px;
 | ||
| 		}
 | ||
| 		#fname {
 | ||
| 			width: 70%;
 | ||
| 			height: 40px;
 | ||
| 			color: #fff;
 | ||
| 			border-radius: 8px;
 | ||
| 			border: none;
 | ||
| 			outline: none;
 | ||
| 			font-size: 20px;
 | ||
| 			text-align: center;
 | ||
| 			vertical-align: middle;
 | ||
| 			background-color: #999;
 | ||
| 		}
 | ||
| 		#ok {
 | ||
| 			width: 19%;
 | ||
| 			height: 40px;
 | ||
| 			color: #fff;
 | ||
| 			background-color: #a45;
 | ||
| 			border: none;
 | ||
| 			outline: none;
 | ||
| 			font-size: 16px;
 | ||
| 			vertical-align: middle;
 | ||
| 		}
 | ||
|     </style>
 | ||
| </head>
 | ||
| <body>
 | ||
|     <div id="app">
 | ||
|         <ul id="fruits">
 | ||
|             <li v-for="fruit in fruits">
 | ||
|                 {{ fruit }}
 | ||
|                 <a href="" @click.prevent="removeItem(fruit)">×</a>
 | ||
|             </li>
 | ||
|         </ul>
 | ||
|         <div>
 | ||
|             <input @keydown.enter="addItem()" type="text" id="fname" v-model.trim="fname">
 | ||
|             <button id="ok" @click="addItem()">确定</button>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
 | ||
|     <script>
 | ||
|     const app = new Vue({
 | ||
|         el: '#app',
 | ||
|         data: {
 | ||
|             fruits: ['苹果', '香蕉', '榴莲', '火龙果'],
 | ||
|             fname: ''
 | ||
|         },
 | ||
|         methods: {
 | ||
|             addItem() {
 | ||
|                 if (this.fname.length > 0) {
 | ||
|                     this.fruits.push(this.fname)
 | ||
|                 }
 | ||
|                 this.fname = ''
 | ||
|             },
 | ||
|             removeItem(fruit) {
 | ||
| 				let index = this.fruits.indexOf(fruit)
 | ||
| 				if (index >= 0) {
 | ||
| 					this.fruits.splice(index, 1)
 | ||
| 				}
 | ||
|             }
 | ||
|         }
 | ||
|     })
 | ||
|     </script>
 | ||
| </body>
 | ||
| </html> | 
