微信小程序开发之改变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 相关文章推荐
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
javaScript 删除字符串空格多种方法小结
Oct 24 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
Node.js的包详细介绍
Jan 14 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
js实现省份下拉菜单效果
Feb 15 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
Feb 27 Javascript
fetch 使用及如何接收JS传值
Nov 11 Javascript
使用classList来实现两个按钮样式的切换方法
Jan 24 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 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
本地计算机无法启动Apache故障处理
2014/08/08 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
JS 控制CSS样式表
2009/08/20 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
jquery 笔记 事件
2011/11/02 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
详解python里的命名规范
2018/07/16 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
Python发展简史 Python来历
2019/05/14 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
django正续或者倒序查库实例
2020/05/19 Python
浅析python连接数据库的重要事项
2021/02/22 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
Linux文件系统类型
2012/02/15 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
毕业评语大全
2014/05/04 职场文书
护理专科学生自荐书
2014/07/05 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
辩护意见书
2015/06/04 职场文书
基于python实现银行管理系统
2021/04/20 Python