【前端】增删查操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/84185265

界面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
  <title>Item Lister</title>
</head>

<body>
  <header id="main-header" class="bg-success text-white p-4 mb-3">
    <div class="container">
      <div class="row">
        <div class="col-md-6">
          <h1 id="header-title">Item Lister</h1>
        </div>
      
        <div class="col-md-6 align-self-center">
          <input type="text" class="form-control" id="filter" placeholder="Search Items...">
        </div>
      </div>
    </div>
  </header>
  
  <div class="container">
   <div id="main" class="card card-body">
    <h2 class="title">Add Items</h2>
    <form id="addForm" class="form-inline mb-3">
      <input id="item" type="text" class="form-control mr-2">
      <!-- <select class="form-control mr-2">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select> -->
      <input type="submit" class="btn btn-dark" value="Submit">
    </form>
    <h2 class="title">Items</h2>
    <ul id="items" class="list-group">
      <li class="list-group-item">Item 1 
        <button class="btn btn-danger btn-sm float-right delete">X</button>
      </li>
      <li class="list-group-item">Item 2
        <button class="btn btn-danger btn-sm float-right delete">X</button>
      </li>
      <li class="list-group-item">Item 3
        <button class="btn btn-danger btn-sm float-right delete">X</button>
      </li>
      <li class="list-group-item">Item 4
        <button class="btn btn-danger btn-sm float-right delete">X</button>
      </li>
      <!-- <li>Item 5</li> -->
    </ul>
    <div id="output"></div>
    <br/>

    <button id="button" class="btn btn-dark btn-block">Click Here</button>
    <div style="width: 400px; height: 200px; background: #f4f4f4" id="box">
      <h3>Hello</h3>
    </div>

  </div>
</div>

<!-- <script src="dom.js"></script> -->
<script src="main.js"></script>
</body>
</html>

逻辑:

// main.js
var form = document.getElementById('addForm')
var itemList = document.getElementById('items')
var filter = document.getElementById('filter')

form.addEventListener('submit', addItem)
itemList.addEventListener('click', removeItem)
filter.addEventListener('keyup', filterItems)

// add item
function addItem(e) {
	e.preventDefault()

	var newItem = document.getElementById('item').value
	var li = document.createElement('li')
	li.className = 'list-group-item'
	// console.log(li)

	// add text node with the input data
	li.appendChild(document.createTextNode(newItem))

	// Create del button 
	var deleteBtn = document.createElement('button')
	// add classes to delete button
	deleteBtn.className = 'btn btn-danger btn-sm float-right delete'

	// append text node
	deleteBtn.appendChild(document.createTextNode('X'))
	li.appendChild(deleteBtn)

	itemList.appendChild(li)
}

function removeItem(e) {
	// console.log(1)
	if (e.target.classList.contains('delete')) {
		if(confirm('Are you sure?')) {
			var li = e.target.parentElement;
			itemList.removeChild(li)
		}
	}
}

// Filter items
function filterItems(e) {
	// convert to lowercase
	var text = e.target.value.toLowerCase();
	var items = itemList.getElementsByTagName('li');
	// console.log(itemList)
	Array.from(items).forEach(function(item){
		var itemName = item.firstChild.textContent;
		// console.log(itemName);
		if(itemName.toLowerCase().indexOf(text) != -1) {
			item.style.display = 'block';
		} else {
			item.style.display = 'none';
		}
	});
}

在这里插入图片描述
效果就是能对搜索框进行过滤,可以添加列表,可以删除已经存在的条目,是非常常见的用法,代码片段可以参考复用。

END.

猜你喜欢

转载自blog.csdn.net/u011240016/article/details/84185265