13.列表过滤.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="app">
  10. 关键字搜索:<input type="text" placeholder="请输入关键字" v-model="keyWords">
  11. <br>
  12. <div v-for="(item,index) in list" :key="index">
  13. {{index + 1}}.我叫{{item.name}}--今年{{item.age}}了--我是{{item.sex}}孩
  14. </div>
  15. </div>
  16. <script src="./vue.js"> </script>
  17. <script>
  18. var vm = new Vue({
  19. el: "#app",
  20. data: {
  21. list:[],
  22. keyWords:"",
  23. arr: [
  24. {
  25. name: "Lucy",
  26. age: 11,
  27. sex: "女",
  28. },
  29. {
  30. name: "LiLi",
  31. age: 31,
  32. sex: "男",
  33. },
  34. {
  35. name: "八戒",
  36. age: 21,
  37. sex: "男",
  38. },
  39. {
  40. name: "八卦",
  41. age: 23,
  42. sex: "男",
  43. },
  44. {
  45. name: "孙悟空",
  46. age: 27,
  47. sex: "男",
  48. },
  49. {
  50. name: "唐僧",
  51. age: 33,
  52. sex: "女",
  53. },
  54. ],
  55. },
  56. watch:{
  57. keyWords:{
  58. deep: true,
  59. immediate: true,
  60. handler(val) {
  61. console.log(val)
  62. this.list = this.arr.filter((item) => {
  63. return item.name.indexOf(val) !== -1
  64. })
  65. }
  66. }
  67. }
  68. })
  69. </script>
  70. </body>
  71. </html>