实现思路:点击某一个日期时,获取当前点击的下表,点击事件bindtap可以获取到所点击的元素的自定义属性,也就是所点击的元素的在data中数组的下标,点击触发,清空所有对象中selected的值,然后将所点击的下标的selected值变为focus就可实现点击某一元素动态改变数组中的某一属性值。
Page({data: { sDate: [ { "week": "日", "date": "01" ,"selected": "focus" }, { "week": "一", "date": "02", "selected": " " }, { "week": "二", "date": "03", "selected": " " }, { "week": "三", "date": "04", "selected": " " }, { "week": "四", "date": "05", "selected": " " }, { "week": "五", "date": "06", "selected": " " }, { "week": "六", "date": "07", "selected": " " }, { "week": "日", "date": "08", "selected": " " }, { "week": "一", "date": "09", "selected": " " }, { "week": "二", "date": "10", "selected": " " }, { "week": "三", "date": "11", "selected": " " }, { "week": "四", "date": "12", "selected": " " }, { "week": "五", "date": "13", "selected": " " }, { "week": "六", "date": "14", "selected": " " }, ]},select: function (e) { var oIndex = e.currentTarget.dataset.index; var array = this.data.sDate; array.forEach( (item,index,arr) => { var sItem = "sDate["+ index + "].selected"; this.setData({ [sItem]: " " }) console.log([sItem]); if(index == oIndex) { var oSelected = "sDate[" + index + "].selected"//这里需要将设置的属性用字符串进行拼接 this.setData({ [oSelected]: "focus" }) } })},})