微信小程序操作dom元素节点 wx.createSelectorQuery()

WXML

<view>
    <text class="title" id="productServe">产品服务</text>
    <text class="title" id="enterpriseServe">企业服务</text>
    <text class="title" id="normalServe">常用应用</text>
</view>

JS

Page({
  //声明节点查询的方法
  queryMultipleNodes: function() {
    const query = wx.createSelectorQuery()                // 创建节点查询器 query
    query.select('#productServe').boundingClientRect()    // 这段代码的意思是选择Id=productServe的节点,获取节点位置信息的查询请求
    query.select('#enterpriseServe').boundingClientRect() // 这段代码的意思是选择Id=enterpriseServe的节点,获取节点位置信息的查询请求
    query.select('#normalServe').boundingClientRect()     // 这段代码的意思是选择Id=normalServe的节点,获取节点位置信息的查询请求
    query.selectViewport().scrollOffset()                 // 这段代码的意思是获取页面滑动位置的查询请求
    query.exec((res) => {
      res[0].top                                          // #productServe节点的到页面顶部的距离
      res[1].width                                        // #enterpriseServe节点的宽度
      res[2].height                                       // #normalServe节点的高度
    })
  }
})

console.log(res) 输出节点信息详情

 

 

 

 

 

 

 

文章每周持续更新,可以微信搜索「 前端大集锦 」第一时间阅读,回复【视频】【书籍】领取200G视频资料和30本PDF书籍资料

微信小程序中的 JavaScript 并不支持像传统浏览器环境中的 `document` 对象来直接操作 DOM,因为微信小程序的页面是由 WXML(类似 HTML 的标记语言)和 WXSS(类似 CSS 的样式表)构成的,并且运行在微信的内嵌浏览器环境中,它没有完整的 DOM API。 在微信小程序中,如果你需要获取元素节点信息,你通常会使用微信提供的 `wx.createSelectorQuery()` API 来进行节点查询。这个方法返回一个 `SelectorQuery` 对象实例,你可以用来查询节点信息,获取节点的宽高、左边距等信息,以及节点在页面中的相对位置。 以下是一个简单的示例代码,展示如何在微信小程序中获取节点信息: ```javascript // 获取应用实例 const app = getApp() Page({ data: { nodeInfo: {} }, onLoad: function() { // 创建选择器查询 const query = wx.createSelectorQuery() // 选择器使用选择器字符串定位节点,例如选择ID为node的节点 query.select('#node') .boundingClientRect() // 节点布局位置的计算 .exec((res) => { // res 是一个包含所选节点信息的数组 const nodeInfo = res[0] if (nodeInfo) { // 这里可以获取到节点的布局信息,如nodeInfo.left, nodeInfo.top等 this.setData({ nodeInfo: nodeInfo }) } }) } }) ``` 在上面的代码中,我们在页面加载时使用了 `wx.createSelectorQuery()` 来查询一个具有特定 ID 的节点,并通过 `boundingClientRect()` 方法获取该节点的布局信息。然后通过回调函数中的 `res` 参数获取到节点的相关信息,并将其存储在页面数据中。 需要注意的是,微信小程序节点信息的查询是异步执行的,需要通过回调函数来获取查询结果。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Demi

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值