遇到问题:wx.createSelectorQuery() 返回值为null
<view style="width: 200px;height: 200px;border: 1px solid red;" id="content">
dom元素
</view>
let query = wx.createSelectorQuery();
query.select("#content").boundingClientRect();
query.exec(function (res) {
console.log(res);// null
});
原因:此属性只会选取页面范围内的节点
- 如果将选择器的选取范围更改为自定义组件 component 内。
- (初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点)
- 所以就造成页面渲染时,获取不到当前节点
官网链接:https://developers.weixin.qq.com/miniprogram/dev/api/wxml/SelectorQuery.in.html
解决方法:将wx.createSelectorQuery()改为wx.createSelectorQuery().in(this)文章来源:https://www.toymoban.com/news/detail-507456.html
<view style="width: 200px;height: 200px;border: 1px solid red;" id="content">
dom元素
</view>
let query = wx.createSelectorQuery().in(this);
query.select("#content").boundingClientRect();
query.exec(function (res) {
console.log(res);// null
// .top 节点的上边界坐标
// .scrollTop显示区域的竖直滚动位置
});
注意:文章来源地址https://www.toymoban.com/news/detail-507456.html
- 如果获取的元素,节点上有wx:if或者节点的元素上有wx:for,那么如果是在数据渲染之前获取的话,那么也是获取不到元素的,只有渲染之后,才能获取到元素,可以加定时器解决
- 如果元素添加了margin值的话,也是获取不到的
到了这里,关于小程序获取元素信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!