目录

  • 前言
  • 一、概述
  • 二、步骤
  • 三、效果展示
  • 总结

前言

主要实现功能,无美化,如需请自设


一、概述

开发工具:微信开发者工具

通过对微信原生组件input绑定事件实现对已获取的列表元素模糊查询的操作

二、步骤

在文件中新建一个goodFilter.wxs文件

代码如下(示例):

goodFilter.wxs

// 列表筛选方法// List为需要筛选的列表,mytext是筛选所需要的条件,返回的为一个模糊查询的列表function ListFilter(List,mytext){  return List.filter(function(item){    // indexOf()报告指定字符在此实例中的第一个匹配项的索引    // 需要输入字符为首字母时候改'>-1'为'==0'    return item.indexOf(mytext)>-1}  )}module.exports = ListFilter

什么是WXS(摘自微信开放文档)

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

页面代码,搜索框与列表元素美化需自设,通过wx:for遍历列表

代码如下(示例):

tool.wxml(部分)

<view wx:key="goods" wx:if="{{display}}" wx:for="{{goodFilter(goodsList,mytext)}}" bindtap="handletap" data-id="{{index}}">{{item}}

无动作时,js文件中声明了display变量,初始为false,通过wx:if属性控制是否显示列表,当搜索框聚焦和失焦时通过更改display的值实现动态显示列表。

代码如下(示例):

tool.js(部分)

Page({  /**   * 页面的初始数据   */  data: {    goodsList:["商品1","商品2","商品3","商品4","商品5","商品6"],    mytext:"",    display:false  },  //键盘输入时触发调用的函数  handleinput(ev){    console.log(ev.detail.value)    this.setData({      mytext:ev.detail.value    })  },  //输入框聚焦时触发调用的函数  handlefocus(){    console.log(this.data.display)    this.setData({      display:true    })  },  // 输入框失去焦点时触发调用的函数  handleblur(){    console.log(this.data.display)    this.setData({     display:false    })  },

当输入框输入时,调用handleinput函数获取输入内容,并将列表和输入内容传到wxs文件中定义的函数对列表元素进行模糊查询处理,返回处理后的列表

三、效果展示

无动作时

点击搜索框,搜索框聚焦,display变量值改变

输入1时将只返回包含1的列表元素

(其他值已测试,展示略)

模糊查询成功实现

总结

了解微信小程序原生组件及属性的使用,了解小程序脚本语言WXS的函数调用的方法