13.列表过滤.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. <h2>关键字搜索:<input type="text" v-model="keywords"></h2>
  11. <ul>
  12. <li v-for="(item,index) in newList" :key="index">
  13. {{index+1}}-我叫{{item.name}}--今年{{item.age}}--是一个{{item.sex}}孩
  14. </li>
  15. </ul>
  16. </div>
  17. <script src="./vue.js"></script>
  18. <script>
  19. var app = new Vue({
  20. el:"#app",
  21. data:{
  22. arr:[
  23. {
  24. name:"LiLi",
  25. age:10,
  26. sex:"女"
  27. },
  28. {
  29. name:"John",
  30. age:17,
  31. sex:"男"
  32. },
  33. {
  34. name:"Lucy",
  35. age:22,
  36. sex:"女"
  37. },
  38. {
  39. name:"Jack",
  40. age:20,
  41. sex:"男"
  42. },
  43. {
  44. name:"孙悟空",
  45. age:33,
  46. sex:"男"
  47. },
  48. {
  49. name:"猪八戒",
  50. age:30,
  51. sex:"男"
  52. }
  53. ],
  54. keywords:"",
  55. newList:[]
  56. },
  57. watch:{
  58. keywords:{
  59. immediate: true,
  60. deep: true,
  61. handler(value) {
  62. console.log(value,'value')
  63. this.newList = this.arr.filter(item => {
  64. return item.sex.indexOf(value) !== -1;
  65. })
  66. }
  67. }
  68. }
  69. })
  70. </script>
  71. </body>
  72. </html>