小程序中获取元素属性并传递给另一元素

本文介绍了一种在微信小程序中实现数据绑定的方法,通过使用data-[属性名]来传递和更新视图中的图片源,详细展示了如何在不支持DOM操作的小程序环境中,利用WXML和JS的数据绑定机制完成视图的动态更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为小程序不支持DOM节点的操作,所以只能用data-[属性名]去实现,然后在注册页面中实现

<view class='setVoiceFooter'>
      <view class='sexIcon' bindtap='chooseBoy'>
      <!--从这里取值传递给下面有注释的元素-->
        <image data-src='../../image/u664.jpg' src='../../image/u664.jpg'></image>
      </view>
  </view>
  <view class="setType {{showType?'':'hidden'}}">
    <view class='{{item.class}}' wx:for="{{loop}}" wx:key="id" data-id='{{item.id}}' style='display:{{item.visible}}'>
      <view wx:if='{{item.id == 1}}' class='certainSexIcon'>
          <!--从上面取到的src属性值赋给该元素 -->
        <image src='{{item.opt}}'></image>
      </view>
      <view wx:else class='session'>{{item.opt}}</view>
    </view>

注册页面中的实现方法

data: {
    loop: [
      {
        opt: "",
        id: 1,
        class: 'send',
        visible: 'flex'
      }
    ]
  },
chooseGirl: function(e) {
    this.setData({
      showVoice: 0,
      showType: 1,
      // loop[0].opt 必须加'',不然是错误的写法,报错,昨天就是在这个地方踩了好久的坑
      'loop[0].opt': e.target.dataset.src
    })
    console.log(this.data.loop[0].opt);
  }
### 微信小程序获取元素高度 在微信小程序环境中,由于无法直接操作 DOM,因此需要采用特定的方式获取页面元素的高度。通过调用微信官方提供的 `wx.createSelectorQuery()` API 可以创建一个查询对象 SelectorQuery 实例[^1]。 此方法允许开发者选取目标节点通过 `.boundingClientRect` 方法获得该节点的位置和尺寸信息,其中包括高度属性。具体实现如下: ```javascript Page({ onLoad: function () { const query = wx.createSelectorQuery() // Select the target node and obtain its dimensions. query.select('.target-class').boundingClientRect(function (rect) { console.log('Element height:', rect.height) }).exec() // Alternatively, you can use all to select multiple nodes with same class name or tag name. query.selectAll('.same-class').boundingClientRect((rects) => { rects.forEach(rect => { console.log('Each element height:', rect.height); }) }).exec(); } }) ``` 上述代码展示了两种方式来选择单个或多个具有同类名的元素打印它们各自的高度值到控制台。值得注意的是,在执行这些查询之前应该先确保页面已经加载完毕再发起请求,通常是在组件生命周期函数如 `onLoad` 或者事件处理程序内部完成这样的逻辑[^4]。 #### 注意事项 - 使用 `select` 来定位唯一的选择器;而当有多个匹配项时,则应考虑使用 `selectAll`. - 查询结果会在回调函数参数里作为矩形区域描述符传递给开发者,其中包含了 top、bottom、left、right 和 width/height 属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值