千家信息网

微信小程序如何获取节点

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下微信小程序如何获取节点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!wx.createSelectorQ
千家信息网最后更新 2026年11月03日微信小程序如何获取节点

小编给大家分享一下微信小程序如何获取节点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

wx.createSelectorQuery()


基础库 1.4.0 开始支持,低版本需做兼容处理


返回一个SelectorQuery对象实例。可以在这个实例上使用select等方法选择节点,并使用boundingClientRect等方法选择需要查询的信息。

示例代码:

Page({  queryMultipleNodes: function(){var query = wx.createSelectorQuery()    query.select('#the-id').boundingClientRect()    query.selectViewport().scrollOffset()    query.exec(function(res){      res[0].top       // #the-id节点的上边界坐标  res[1].scrollTop // 显示区域的竖直滚动位置})  }})

selectorQuery

selectorQuery 对象的方法列表:

方法参数说明
selectselector参考下面详细介绍
selectAllselector参考下面详细介绍
selectViewport参考下面详细介绍
exec[callback]参考下面详细介绍

selectorQuery.select(selector)


在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,可以用于获取节点信息。

selector类似于CSS的选择器,但仅支持下列语法。

  • ID选择器:#the-id

  • class选择器(可以连续指定多个):.a-class.another-class

  • 子元素选择器:.the-parent > #the-child.a-class

  • 多选择器的并集:#a-node, .some-other-nodes

selectorQuery.selectAll(selector)


在当前页面下选择匹配选择器selector的节点,返回一个NodesRef对象实例。 与selectorQuery.selectNode(selector)不同的是,它选择所有匹配选择器的节点。

selectorQuery.selectViewport()


选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例。

nodesRef.boundingClientRect([callback])


添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。其功能类似于DOM的getBoundingClientRect。返回值是nodesRef对应的selectorQuery。

返回的节点信息中,每个节点的位置用left、right、top、bottom、width、height字段描述。如果提供了callback回调函数,在执行selectQuery的exec方法后,节点信息会在callback中返回。

示例代码:

Page({  getRect: function(){    wx.createSelectorQuery().select('#the-id').boundingClientRect(function(rect){      rect.id      // 节点的ID  rect.dataset // 节点的dataset  rect.left    // 节点的左边界坐标  rect.right   // 节点的右边界坐标  rect.top     // 节点的上边界坐标  rect.bottom  // 节点的下边界坐标  rect.width   // 节点的宽度  rect.height  // 节点的高度}).exec()  },  getAllRects: function(){    wx.createSelectorQuery().selectAll('.a-class').boundingClientRect(function(rects){      rects.forEach(function(rect){        rect.id      // 节点的IDrect.dataset // 节点的datasetrect.left    // 节点的左边界坐标rect.right   // 节点的右边界坐标rect.top     // 节点的上边界坐标rect.bottom  // 节点的下边界坐标rect.width   // 节点的宽度rect.height  // 节点的高度  })    }).exec()  }})

nodesRef.scrollOffset([callback])


添加节点的滚动位置查询请求,以像素为单位。节点必须是scroll-view或者viewport。返回值是nodesRef对应的selectorQuery。

返回的节点信息中,每个节点的滚动位置用scrollLeft、scrollHeight字段描述。如果提供了callback回调函数,在执行selectQuery的exec方法后,节点信息会在callback中返回。

示例代码:

Page({  getScrollOffset: function(){    wx.createSelectorQuery().selectViewport().scrollOffset(function(res){      res.id      // 节点的ID  res.dataset // 节点的dataset  res.scrollLeft // 节点的水平滚动位置  res.scrollTop  // 节点的竖直滚动位置}).exec()  }})

nodesRef.fields(fields, [callback])


获取节点的相关信息,需要获取的字段在fields中指定。返回值是nodesRef对应的selectorQuery。可指定获取的字段包括:

字段名默认值说明
id否是否返回节点id
dataset否是否返回节点dataset
rect否是否返回节点布局位置(left right top bottom)
size否是否返回节点尺寸(width height)
scrollOffset否是否返回节点的 scrollLeft scrollTop ,节点必须是scroll-view或者viewport
properties[]指定属性名列表,返回节点对应属性名的当前属性值(只能获得组件文档中标注的常规属性值, id class style 和事件绑定的属性值不可获取)

示例代码:

Page({  getFields: function(){    wx.createSelectorQuery().select('#the-id').fields({      dataset: true,      size: true,      scrollOffset: true,      properties: ['scrollX', 'scrollY']    }, function(res){      res.dataset    // 节点的dataset  res.width      // 节点的宽度  res.height     // 节点的高度  res.scrollLeft // 节点的水平滚动位置  res.scrollTop  // 节点的竖直滚动位置  res.scrollX    // 节点 scroll-x 属性的当前值  res.scrollY    // 节点 scroll-x 属性的当前值}).exec()  }})

selectorQuery.exec([callback])


执行所有的请求,请求结果按请求次序构成数组,在callback的第一个参数中返回。

以上是"微信小程序如何获取节点"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

节点 选择 位置 坐标 信息 属性 方法 字段 实例 对象 边界 参考 代码 区域 示例 宽度 篇文章 高度 查询 程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技图片 互联网科技产业 科技赋能下的互联网金融 互联网科技开发公司 互联网与新科技 腾讯科技 互联网女皇 天速互联网络科技有限公司 贵州叶脉互联网科技有限公司所属行业 中国航天科技大学国际工业互联网 洛阳昕诺飞互联网科技有限公司 科技类公司包括互联网吗 互联网科技的全部知识 深圳艾果互联网通讯科技 雨阳互联网卡科技有限公司 中天科技中国工业互联网 领航科技大厦互联网公司 科技互联网行业投资研究 上海万顺科技互联网有限公司招聘 高科技和互联网的现代国家 前海云享互联网科技 咖啡 广州万易互联网科技有限公司 云信互联网科技有限公司 互联网和科技技术 广州互联网络科技有限公司 济南和联互联网科技有限公司 互联网科技实习生岗位职责 电子科技大学互联网创业大赛 工业互联网等科技实现智能化赋能 珠海东科互联网科技有限公司
0