114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.8 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>苹果<a href="">×</a></li>
 | ||
|             <li>香蕉<a href="">×</a></li>
 | ||
|             <li>榴莲<a href="">×</a></li>
 | ||
|             <li>火龙果<a href="">×</a></li>
 | ||
|         </ul>
 | ||
|         <div>
 | ||
|             <input type="text" id="fname">
 | ||
|             <button id="ok">确定</button>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
 | ||
|     <script>
 | ||
|     // 1. $函数的参数是一个函数,该函数是页面加载完成后执行的回调函数
 | ||
|     $(() => {
 | ||
|         function removeItem(evt) {
 | ||
|             evt.preventDefault()
 | ||
|             // 4. $函数的参数是原生JavaScript对象,返回该原生JavaScript对象对应的jQuery对象
 | ||
|             $(evt.target).parent().remove()
 | ||
|         }
 | ||
| 
 | ||
|         function addItem(evt) {
 | ||
|             let fname = $('#fname').val().trim()
 | ||
|             if (fname.length > 0) {
 | ||
|                 $('#fruits').append(
 | ||
|                     // 3. $函数的参数是标签字符串,创建对应的标签元素并返回jQuery对象
 | ||
|                     $('<li>').text(fname).append(
 | ||
|                         $('<a>').attr('href', '').text('×')
 | ||
|                         	.on('click', removeItem)
 | ||
|                     )
 | ||
|                 )
 | ||
|             }
 | ||
|             $('#fname').val('')
 | ||
|             // jQuery对象通过下标运算或get方法可以获得与之对应的原生JavaScript对象
 | ||
|             // input.get(0).focus()
 | ||
|             $('#fname')[0].focus()
 | ||
|         }
 | ||
| 
 | ||
|         // 2. $函数的参数是选择器字符串,返回对应元素的jQuery对象
 | ||
|         $('#fruits a').on('click', removeItem)
 | ||
|         $('#ok').on('click', addItem)
 | ||
|         $('#fname').on('keydown', (evt) => {
 | ||
|         	let code = evt.keyCode || evt.which
 | ||
|         	if (code == 13) {
 | ||
|         		addItem(evt) 
 | ||
|         	}
 | ||
|         })
 | ||
|     })
 | ||
|     </script>
 | ||
| </body>
 | ||
| </html> |