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> |