index.wxml
<view wx:for="{{items}}" wx:key="index"> <button data-index="{{index}}" bindtap="selectItem" class="{{item.selected ? 'selected' : 'not-selected'}}"> {{item.name}} </button> </view>
index.js
Page({ data: { items: [ { name: 'Item 1', selected: false }, { name: 'Item 2', selected: false }, { name: 'Item 3', selected: false }, ] }, selectItem: function(event) { const index = event.target.dataset.index; const items = this.data.items; items[index].selected = !items[index].selected; this.setData({ items }); } })
index.wxss
/* selected-item.wxss */ .selected { background-color: #007AFF; color: #FFFFFF; border-radius: 10rpx; padding: 5px; } .not-selected { background-color: #FFFFFF; color: #000000; border-radius: 10rpx; padding: 5px; }