微信小程序开发之改变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
Nov 25 Javascript
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
Jun 20 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 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
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
js格式化时间的方法
2015/12/18 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python中psutil的介绍与用法
2019/05/02 Python
python多线程分块读取文件
2019/08/29 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
linux比较文件内容的命令是什么
2015/09/23 面试题
新员工入职感言
2014/02/01 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书