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