微信小程序开发之改变data中数组或对象的某一属性值


Posted in Javascript onJuly 05, 2018

前言:在小程序的开发中,我们在view中便利data中数组或对象时,很多情况下需要在js中动态改变数组或者对象中某一香的属性值。

效果图:

微信小程序开发之改变data中数组或对象的某一属性值

我给大家总结了案例如下:

wxml如下:

<scroll-view class='hd-cont' scroll-x="true" style='width: 100%'>
 <view wx:for="{{sDate}}" wx:key="{{index}}" class='date-cont'>
  <view>{{item.week}}</view>
  <view bindtap='select' data-index="{{index}}" class=' curl {{item.selected}}'>{{item.date}}</view>
 </view>
</scroll-view> 

wxss如下:

.hd-cont {
 height: 126rpx;
 white-space: nowrap;
 padding-left: 20rpx;
 color: #fff;
 font-size: 28rpx;
 box-sizing: border-box;
}
.date-cont {
 width: 40rpx;
 margin-right: 70rpx;
 height: 100%;
 display: inline-block;
 padding-top: 10rpx;
 box-sizing: border-box;
 text-align: center;
}
.curl {
 width: 40rpx;
 height: 40rpx;
 border-radius: 50%;
 line-height: 40rpx;
}
.date-cont view:first-child {
 margin-bottom: 20rpx;
}
.focus {
 display: inline-block;
 width: 40rpx;
 height: 40rpx;
  font-family: Monaco;">#fff;
 color: #16cc80;
 border-radius: 50%;
 line-height: 40rpx;
}

wxjs如下:

实现思路:点击某一个日期时,获取当前点击的下表,点击事件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"
   })
  }
 })
},
})

 总结

以上所述是小编给大家介绍的微信小程序开发之改变data中数组或对象的某一属性值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
May 04 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
Jun 01 Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 Javascript
关于uniApp editor微信滑动问题
Jan 15 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 #Javascript
微信小程序实现左右联动的实战记录
Jul 05 #Javascript
vue实现自定义多选与单选的答题功能
Jul 05 #Javascript
JavaScript实现图片懒加载的方法分析
Jul 05 #Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 #Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 #Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 #Javascript
You might like
香妃
2021/03/03 冲泡冲煮
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
Date对象格式化函数代码
2010/07/17 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
让python json encode datetime类型
2010/12/28 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Python3 assert断言实现原理解析
2020/03/02 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
员工福利申请报告
2015/05/15 职场文书
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
Redis入门教程详解
2021/08/30 Redis
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers
MySQL创建表操作命令分享
2022/03/25 MySQL
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers