3.1vue品牌案例

195 阅读12分钟

搜索过滤等等等案例

  • 每一行属于一个对象,对象属于一个数组

  • 假数据data是一个数组

  • v-for 的循环表达式的操作 v-text注意不要有插值表达式

  • 点击添加按钮,获取两个input的值,将值组合成一个对象,push到数组中去

  • id和name可以直接从data上面获取

  • 组织出一个对象

  • 调用数组相关方法,添加到当前的data中list中去

  • 在vue中已经实现了数据的双向绑定,每当修改了data中的数据,vue会默认监听到数据的改动,自动把最新的数据应用到页面上

  • 直接将时间重新声明

  • 对表单添加完成后需要将model的值变为空值

  • 更多的是在vue中对vm 的model的数据操作

  • 添加代码

       <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <link rel="stylesheet" href="./css/bootstrap.min.css">
          <script src="./lib/vue.js"></script>
      </head>
      
      <body>
          <div id="app">
      
              <div class="panel panel-primary">
                  <div class="panel-heading">
                      <h3 class="panel-title">添加品牌</h3>
                  </div>
                  <div class="panel-body form-inline">
                      <label for="">Id
                          <input type="text" name="" id="" v-model="id" class="form-control">
                      </label>
                      <label for="">Name
                          <input type="text" name="" id="" v-model="name" class="form-control">
                      </label>
                      <label for="">
                          <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                      </label>
                  </div>
              </div>
      
              <table class="table table-bordered table-hover table-striped">
                  <thead>
                      <th>ID</th>
                      <th>Name</th>
                      <th>Ctime</th>
                      <th>Operation</th>
                  </thead>
                  <tbody>
                      <tr v-for="item in list" :key="item.id">
                          <td>{{item.id}}</td>
                          <td>{{item.name}}</td>
                          <td v-text="item.ctime"></td>
                          <td><a href="">删除</a></td>
                      </tr>
                  </tbody>
              </table>
          </div>
          <script>
              var vm = new Vue({
                  el: "#app",
                  data: {
                      id: '',
                      name: '',
                      list: [
                          { id: 1, name: '奔驰', ctime: new Date() },
                          { id: 2, name: '宝马', ctime: new Date() },
                          { id: 3, name: '路虎', ctime: new Date() }
                      ]
                  },
                  methods: {
                      add() {
                          // 拼接对象
                          var car = { id: this.id, name: this.name, ctime: new Date() }
                          //  push对象
                          this.list.push(car)
                          this.id = this.name = ''
                      }
                  }
              })
          </script>
      </body>
      
      </html>
    
  • 删除操作根据id删除

  • 在删除上绑定事件点击删除操作,记得a链接阻止默认行为

  • 绑定的方法直接传入id值,及item.id在循环内部,可以使用

  • 根据id找到删除对象的索引

  • 找到索引后删除,直接调用数组的splice方法

  • 查找索引,some函数

         this.list.some((item,i)=>{
           if(item.id === id){
               this.list.splice(i,1)
          // 在some方法中return true ,就会立即终止这个数组的后续循环
          return true
             })
    
  • 快速找到索引,findIndex

         this.list.findIndex(item=>{
           if(item.id == id){
               this.list.splice(i,1)
          // 在some方法中return true ,就会立即终止这个数组的后续循环
          return true
             })
    
  • 删除+添加

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <link rel="stylesheet" href="./css/bootstrap.min.css">
              <script src="./lib/vue.js"></script>
          </head>
          
          <body>
              <div id="app">
          
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                          <h3 class="panel-title">添加品牌</h3>
                      </div>
                      <div class="panel-body form-inline">
                          <label for="">Id
                              <input type="text" name="" id="" v-model="id" class="form-control">
                          </label>
                          <label for="">Name
                              <input type="text" name="" id="" v-model="name" class="form-control">
                          </label>
                          <label for="">
                              <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                          </label>
                      </div>
                  </div>
          
                  <table class="table table-bordered table-hover table-striped">
                      <thead>
                          <th>ID</th>
                          <th>Name</th>
                          <th>Ctime</th>
                          <th>Operation</th>
                      </thead>
                      <tbody>
                          <tr v-for="item in list" :key="item.id">
                              <td>{{item.id}}</td>
                              <td>{{item.name}}</td>
                              <td v-text="item.ctime"></td>
                              <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                          </tr>
                      </tbody>
                  </table>
              </div>
              <script>
                  var vm = new Vue({
                      el: "#app",
                      data: {
                          id: '',
                          name: '',
                          list: [
                              { id: 1, name: '奔驰', ctime: new Date() },
                              { id: 2, name: '宝马', ctime: new Date() },
                              { id: 3, name: '路虎', ctime: new Date() }
                          ]
                      },
                      methods: {
                          add() {
                              // 拼接对象
                              var car = { id: this.id, name: this.name, ctime: new Date() }
                              //  push对象
                              this.list.push(car)
                              this.id = this.name = ''
                          },
                          dele(id) {
                              // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                              this.list.some((item,i)=>{
                                  if(item.id === id){                        
                              // 找到索引后删除,直接调用数组的splice方法
                                      this.list.splice(i,1)
                                      // 在some方法中return true ,就会立即终止这个数组的后续循环
                                      return true
                                  }
                              })
                          //    var index = this.list.findIndex(item=>{
                          //         if(item.id==id){
                          //             return true
                          //         }
                          //     })
                          //         this.list.splice(index,1)
                          }
                      }
                  })
              </script>
          </body>
          
          </html>
    
  • 过滤步骤

  • 为了显示的数据不是死数据将list数据更改为方法

     <tr v-for="item in list" :key="item.id"> 
    
  • 渲染的数据根据框框改变之前v-for的数据都是由data中的list传过来的

  • 现在通过自定义一个search方法,同时把所有的关键字,通过传参数的形式将其传递给search方法

  • 在search方法内部,通过执行for循环,过滤list中所有的数据,将符合搜索关键字的数据的放入到新的数组中,返回

       search(keywords){
                     var newList=[]
                     this.list.forEach(item=>{
                         if(item.name.indexOf(keywords)!=-1){
                             newList.push(item)
                         }
                     })
                     return newList
                 }
    
  • indexOf 过滤

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <link rel="stylesheet" href="./css/bootstrap.min.css">
          <script src="./lib/vue.js"></script>
      </head>
      <body>
          <div id="app">
      
              <div class="panel panel-primary">
                  <div class="panel-heading">
                      <h3 class="panel-title">添加品牌</h3>
                  </div>
                  <div class="panel-body form-inline">
                      <label for="">Id
                          <input type="text" name="" id="" v-model="id" class="form-control">
                      </label>
                      <label for="">Name
                          <input type="text" name="" id="" v-model="name" class="form-control">
                      </label>
                      <label for="">
                          <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                      </label>
                      <label for="">搜索名称关键字
                          <input type="text"name="" id="" v-model="keywords" class="form-control">
                      </label>
                  </div>
              </div>
      
              <table class="table table-bordered table-hover table-striped">
                  <thead>
                      <th>ID</th>
                      <th>Name</th>
                      <th>Ctime</th>
                      <th>Operation</th>
                  </thead>
                  <tbody>
                      <tr v-for="item in search(keywords)" :key="item.id">
                          <td>{{item.id}}</td>
                          <td>{{item.name}}</td>
                          <td v-text="item.ctime"></td>
                          <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                      </tr>
                  </tbody>
              </table>
          </div>
          <script>
              var vm = new Vue({
                  el: "#app",
                  data: {
                      id: '',
                      name: '',
                      keywords:'',
                      list: [
                          { id: 1, name: '奔驰', ctime: new Date() },
                          { id: 2, name: '宝马', ctime: new Date() },
                          { id: 3, name: '路虎', ctime: new Date() }
                      ]
                  },
                  methods: {
                      add() {
                          // 拼接对象
                          var car = { id: this.id, name: this.name, ctime: new Date() }
                          //  push对象
                          this.list.push(car)
                          this.id = this.name = ''
                      },
                      dele(id) {
                          // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                          this.list.some((item,i)=>{
                              if(item.id === id){                        
                          // 找到索引后删除,直接调用数组的splice方法
                                  this.list.splice(i,1)
                                  // 在some方法中return true ,就会立即终止这个数组的后续循环
                                  return true
                              }
                          })
                      },
                      search(keywords){
                          var newList=[]
                          this.list.forEach(item=>{
                              if(item.name.indexOf(keywords)!=-1){
                                  newList.push(item)
                              }
                          })
                          return newList
                      }
                  }
              })
          </script>
      </body>
      
      </html>
    
  • includes

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <link rel="stylesheet" href="./css/bootstrap.min.css">
              <script src="./lib/vue.js"></script>
          </head>
          
          <body>
              <div id="app">
          
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                          <h3 class="panel-title">添加品牌</h3>
                      </div>
                      <div class="panel-body form-inline">
                          <label for="">Id
                              <input type="text" name="" id="" v-model="id" class="form-control">
                          </label>
                          <label for="">Name
                              <input type="text" name="" id="" v-model="name" class="form-control">
                          </label>
                          <label for="">
                              <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                          </label>
                          <label for="">搜索名称关键字
                              <input type="text"name="" id="" v-model="keywords" class="form-control">
                          </label>
                      </div>
                  </div>
          
                  <table class="table table-bordered table-hover table-striped">
                      <thead>
                          <th>ID</th>
                          <th>Name</th>
                          <th>Ctime</th>
                          <th>Operation</th>
                      </thead>
                      <tbody>
                          <tr v-for="item in search(keywords)" :key="item.id">
                              <td>{{item.id}}</td>
                              <td>{{item.name}}</td>
                              <td v-text="item.ctime"></td>
                              <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                          </tr>
                      </tbody>
                  </table>
              </div>
              <script>
                  var vm = new Vue({
                      el: "#app",
                      data: {
                          id: '',
                          name: '',
                          keywords:'',
                          list: [
                              { id: 1, name: '奔驰', ctime: new Date() },
                              { id: 2, name: '宝马', ctime: new Date() },
                              { id: 3, name: '路虎', ctime: new Date() }
                          ]
                      },
                      methods: {
                          add() {
                              // 拼接对象
                              var car = { id: this.id, name: this.name, ctime: new Date() }
                              //  push对象
                              this.list.push(car)
                              this.id = this.name = ''
                          },
                          dele(id) {
                              // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                              this.list.some((item,i)=>{
                                  if(item.id === id){                        
                              // 找到索引后删除,直接调用数组的splice方法
                                      this.list.splice(i,1)
                                      // 在some方法中return true ,就会立即终止这个数组的后续循环
                                      return true
                                  }
                              })
                          },
                          search(keywords){
                             ////1.2includes
                              var newList = this.list.filter(item=>{
                                  // es6中为字符串提供新的方法,string.prototype.includes('要包含的字符串'),包含返回true不包含返回false
                                  // contains选取包含指定字符串的数据
                                  if(item.name.includes(keywords)){
                                     return item
                                  }
                              })
                              return newList
                          }
                      }
                  })
              </script>
          </body>
          
          </html>
    
  • 时间年月过滤器

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>时间过滤器</title>
          <link rel="stylesheet" href="./css/bootstrap.min.css">
          <script src="./lib/vue.js"></script>
      </head>
      
      <body>
          <div id="app">
      
              <div class="panel panel-primary">
                  <div class="panel-heading">
                      <h3 class="panel-title">添加品牌</h3>
                  </div>
                  <div class="panel-body form-inline">
                      <label for="">Id
                          <input type="text" name="" id="" v-model="id" class="form-control">
                      </label>
                      <label for="">Name
                          <input type="text" name="" id="" v-model="name" class="form-control">
                      </label>
                      <label for="">
                          <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                      </label>
                      <label for="">搜索名称关键字
                          <input type="text" name="" id="" v-model="keywords" class="form-control">
                      </label>
                  </div>
              </div>
      
              <table class="table table-bordered table-hover table-striped">
                  <thead>
                      <th>ID</th>
                      <th>Name</th>
                      <th>Ctime</th>
                      <th>Operation</th>
                  </thead>
                  <tbody>
                      <tr v-for="item in search(keywords)" :key="item.id">
                          <td>{{item.id}}</td>
                          <td v-text="item.name"></td>
                          <td>{{item.ctime|dateFormat}}</td>
                          <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                      </tr>
                  </tbody>
              </table>
          </div>
          <script>
              // 过滤器 start
              //时间过滤器,全局,时间事件格式化
              Vue.filter('dateFormat', function (dataStr) {
                  // 根据给定的字符串dataStr,得到特定的时间
                  // yyyy-mm-dd   拼接
                  var dt = new Date(dataStr)
                  var y = dt.getFullYear()
                  var m = dt.getMonth() + 1
                  var d = dt.getDate()
                  //连接
                  // return y+'-'+m+'-'+d
                  //模板字符串
                  // return `yyyy-mm-dd`
                  return `${y}-${m}-${d}`
              })
              // 过滤器 end
              var vm = new Vue({
                  el: "#app",
                  data: {
                      id: '',
                      name: '',
                      keywords: '',
                      list: [
                          { id: 1, name: '奔驰', ctime: new Date() },
                          { id: 2, name: '宝马', ctime: new Date() },
                          { id: 3, name: '路虎', ctime: new Date() }
                      ]
                  },
                  methods: {
                      add() {
                          // 拼接对象
                          var car = { id: this.id, name: this.name, ctime: new Date() }
                          //  push对象
                          this.list.push(car)
                          this.id = this.name = ''
                      },
                      dele(id) {
                          // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                          this.list.some((item, i) => {
                              if (item.id === id) {
                                  // 找到索引后删除,直接调用数组的splice方法
                                  this.list.splice(i, 1)
                                  // 在some方法中return true ,就会立即终止这个数组的后续循环
                                  return true
                              }
                          })
                      },
                      search(keywords) {
                          ////1.2includes
                          var newList = this.list.filter(item => {
                              // es6中为字符串提供新的方法,string.prototype.includes('要包含的字符串'),包含返回true不包含返回false
                              // contains选取包含指定字符串的数据
                              if (item.name.includes(keywords)) {
                                  return item
                              }
                          })
                          return newList
                      }
                  }
              })
          </script>
      </body>
      
      </html>
    
  • 时间过滤器是否传值

  • 传值 年月日

        <td>{{item.ctime|dateFormat('yyyy-MM-DD')}}</td>
    
  • 不传值 空字符串年月日时分秒

       <td>{{item.ctime|dateFormat('')}}</td>
    

时间过滤器

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>时间过滤器</title>
        <link rel="stylesheet" href="./css/bootstrap.min.css">
        <script src="./lib/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
    
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title">添加品牌</h3>
                </div>
                <div class="panel-body form-inline">
                    <label for="">Id
                        <input type="text" name="" id="" v-model="id" class="form-control">
                    </label>
                    <label for="">Name
                        <input type="text" name="" id="" v-model="name" class="form-control">
                    </label>
                    <label for="">
                        <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                    </label>
                    <label for="">搜索名称关键字
                        <input type="text" name="" id="" v-model="keywords" class="form-control">
                    </label>
                </div>
            </div>
    
            <table class="table table-bordered table-hover table-striped">
                <thead>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Ctime</th>
                    <th>Operation</th>
                </thead>
                <tbody>
                    <tr v-for="item in search(keywords)" :key="item.id">
                        <td>{{item.id}}</td>
                        <td v-text="item.name"></td>
                        <td>{{item.ctime|dateFormat('')}}</td>
                        <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                    </tr>
                </tbody>
            </table>
        </div>
        <script>
            // 过滤器 start
            //时间过滤器,全局,时间事件格式化
            Vue.filter('dateFormat', function (dataStr,pattern) {
                // 根据给定的字符串dataStr,得到特定的时间
                // yyyy-mm-dd   拼接
                var dt = new Date(dataStr)
                var y = dt.getFullYear()
                var m = dt.getMonth() + 1
                var d = dt.getDate()
                //连接
                // return y+'-'+m+'-'+d
                //模板字符串
                // return `yyyy-mm-dd`
               
                // 先变小写
                if(pattern.toLowerCase()=='yyyy-mmm-dd'){
                    return `${y}-${m}-${d}`
                }else{
                    var hh = dt.getHours()
                    var mm = dt.getMinutes()
                    var ss = dt.getSeconds()
                    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
                }
            })
            // 过滤器 end
            var vm = new Vue({
                el: "#app",
                data: {
                    id: '',
                    name: '',
                    keywords: '',
                    list: [
                        { id: 1, name: '奔驰', ctime: new Date() },
                        { id: 2, name: '宝马', ctime: new Date() },
                        { id: 3, name: '路虎', ctime: new Date() }
                    ]
                },
                methods: {
                    add() {
                        // 拼接对象
                        var car = { id: this.id, name: this.name, ctime: new Date() }
                        //  push对象
                        this.list.push(car)
                        this.id = this.name = ''
                    },
                    dele(id) {
                        // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                        this.list.some((item, i) => {
                            if (item.id === id) {
                                // 找到索引后删除,直接调用数组的splice方法
                                this.list.splice(i, 1)
                                // 在some方法中return true ,就会立即终止这个数组的后续循环
                                return true
                            }
                        })
                    },
                    search(keywords) {
                        ////1.2includes
                        var newList = this.list.filter(item => {
                            // es6中为字符串提供新的方法,string.prototype.includes('要包含的字符串'),包含返回true不包含返回false
                            // contains选取包含指定字符串的数据
                            if (item.name.includes(keywords)) {
                                return item
                            }
                        })
                        return newList
                    }
                }
            })
        </script>
    </body>
    
    </html>
  • 直接时()无值,是underfined,短路运算只有为true才运算

html

      <td>{{item.ctime|dateFormat()}}</td>

js

传入两个参数 (dataStr,pattern)

 if(pattern&&pattern.toLowerCase()=='yyyy-mmm-dd'){
            return `${y}-${m}-${d}`
        }else{
            var hh = dt.getHours()
            var mm = dt.getMinutes()
            var ss = dt.getSeconds()
            return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
        }
  • es6 优化默认传入空值 html

        <td>{{item.ctime|dateFormat()}}</td>
    

js

传入两个参数 (dataStr,pattern='')

 if(pattern.toLowerCase()=='yyyy-mmm-dd'){
            return `${y}-${m}-${d}`
        }else{
            var hh = dt.getHours()
            var mm = dt.getMinutes()
            var ss = dt.getSeconds()
            return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
        }

最终代码

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>时间过滤器</title>
        <link rel="stylesheet" href="./css/bootstrap.min.css">
        <script src="./lib/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
    
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title">添加品牌</h3>
                </div>
                <div class="panel-body form-inline">
                    <label for="">Id
                        <input type="text" name="" id="" v-model="id" class="form-control">
                    </label>
                    <label for="">Name
                        <input type="text" name="" id="" v-model="name" class="form-control">
                    </label>
                    <label for="">
                        <input type="button" value="添加" name="" id="" class="btn btn-primary" @click="add">
                    </label>
                    <label for="">搜索名称关键字
                        <input type="text" name="" id="" v-model="keywords" class="form-control">
                    </label>
                </div>
            </div>
    
            <table class="table table-bordered table-hover table-striped">
                <thead>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Ctime</th>
                    <th>Operation</th>
                </thead>
                <tbody>
                    <tr v-for="item in search(keywords)" :key="item.id">
                        <td>{{item.id}}</td>
                        <td v-text="item.name"></td>
                        <td>{{item.ctime|dateFormat()}}</td>
                        <td><a href="" @click.prevent='dele(item.id)'>删除</a></td>
                    </tr>
                </tbody>
            </table>
        </div>
        <script>
            // 过滤器 start
            //时间过滤器,全局,时间事件格式化
            Vue.filter('dateFormat', function (dataStr,pattern='') {
                // 根据给定的字符串dataStr,得到特定的时间
                // yyyy-mm-dd   拼接
                var dt = new Date(dataStr)
                var y = dt.getFullYear()
                var m = dt.getMonth() + 1
                var d = dt.getDate()
                //连接
                // return y+'-'+m+'-'+d
                //模板字符串
                // return `yyyy-mm-dd`
               
                // 先变小写
                if(pattern.toLowerCase()=='yyyy-mmm-dd'){
                    return `${y}-${m}-${d}`
                }else{
                    var hh = dt.getHours()
                    var mm = dt.getMinutes()
                    var ss = dt.getSeconds()
                    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
                }
            })
            // 过滤器 end
            var vm = new Vue({
                el: "#app",
                data: {
                    id: '',
                    name: '',
                    keywords: '',
                    list: [
                        { id: 1, name: '奔驰', ctime: new Date() },
                        { id: 2, name: '宝马', ctime: new Date() },
                        { id: 3, name: '路虎', ctime: new Date() }
                    ]
                },
                methods: {
                    add() {
                        // 拼接对象
                        var car = { id: this.id, name: this.name, ctime: new Date() }
                        //  push对象
                        this.list.push(car)
                        this.id = this.name = ''
                    },
                    dele(id) {
                        // 根据id找到删除对象的索引  some根据指定的条件判断不知道什么时候能找到,随时可以终止
                        this.list.some((item, i) => {
                            if (item.id === id) {
                                // 找到索引后删除,直接调用数组的splice方法
                                this.list.splice(i, 1)
                                // 在some方法中return true ,就会立即终止这个数组的后续循环
                                return true
                            }
                        })
                    },
                    search(keywords) {
                        ////1.2includes
                        var newList = this.list.filter(item => {
                            // es6中为字符串提供新的方法,string.prototype.includes('要包含的字符串'),包含返回true不包含返回false
                            // contains选取包含指定字符串的数据
                            if (item.name.includes(keywords)) {
                                return item
                            }
                        })
                        return newList
                    }
                }
            })
        </script>
    </body>
    
    </html>