赞
踩
通常在做微信小程序的时候我们经常会需要获取元素的信息,但是微信小程序有没有完整的“DOM”操作,无法像浏览器中获取元素。
不过在微信中也有一套自己的“DOM”,那就是NodesRef,它可以让我们像开发浏览器程序一样轻松愉快的获取页面元素
NodesRef 用于获取 WXML 节点信息的对象
let query = wx.createSelectorQuery()
SelectorQuery.in (对应的组件)
SelectorQuery.select(string selector)
SelectorQuery.selectAll()
SelectorQuery.selectViewport()
SelectorQuery.exec(function callback)
let query = wx.createSelectorQuery()
方法一:query.select(queryString) 选择第一个匹配节点
方法二:query.selectAll(queryString) 选择所有匹配节点
let queryString = '.blue-product>>>.product-list' let queryNode = query.selectAll(queryString)
- queryNode.fields({
- id:false,//是否返回节点id
- rect:fasle,//是否返回节点布局位置
- dataset: true,//返回数据集
- size: true,//返回宽高
- scrollOffset: true,//返回 scrollLeft,scrollTop
- properties: ['scrollX', 'scrollY'],//监听属性名
- computedStyle: ['margin', 'backgroundColor']//此处返回指定要返回的样式名
- }, function(res) {
- console.log(res)
- })
-
- // 返回结果
- [{
- dataset:{},
- width:247,
- height:1065,
- scrollLeft:0,
- scrollTop:0,
- margin:"0px 0px 10px",
- backgroundColor:"rgba(0, 0, 0, 0)",
- },{
- dataset:{},
- width:247,
- height:1065,
- scrollLeft:0,
- scrollTop:0,
- margin:"0px 0px 10px",
- backgroundColor:"rgba(0, 0, 0, 0)",
- },{
- dataset:{},
- width:247,
- height:1065,
- scrollLeft:0,
- scrollTop:0,
- margin:"0px 0px 10px",
- backgroundColor:"rgba(0, 0, 0, 0)",
- }]
- query.selectAll(queryClass).boundingClientRect(function(rect){
- rect.id // 节点的ID
- rect.dataset // 节点的dataset
- rect.left // 节点的左边界坐标
- rect.right // 节点的右边界坐标
- rect.top // 节点的上边界坐标
- rect.bottom // 节点的下边界坐标
- rect.width // 节点的宽度
- rect.height // 节点的高度
- })
- wx.createSelectorQuery().selectViewport().scrollOffset(function(res){
- res.id // 节点的ID
- res.dataset // 节点的dataset
- res.scrollLeft // 节点的水平滚动位置
- res.scrollTop // 节点的竖直滚动位置
- })
query.exec(function(res) { console.log(res) })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。