收藏
回答

wx.createSelectorQuery()怎么获取当前页面组件中的元素?【解决】

首先,

wx.createSelectorQuery()

这个方法,在当前页面中获取元素,没有问题。在我自定义的组件中获取,也可以。

但现在碰到一个问题,我需要获取一个第三方组件的高度。那么就需要获取该组件内的一个元素的高度。

现在经过各种尝试都无法获取到。

后来发现wx.createSelectorQuery().in(组件),这个方法,可以放个组件进去。但是虽然没有报错,却也没有任何执行结果。

代码类似如下:

wx.createSelectorQuery().in('组件名').select('.组件内元素的class').boundingClientRect(function (res1) {

console.log("res1", res1);

}).exec();

请问大家都是用什么办法在组件外,获取指定组件部分元素的高度的呢?

====================================================

解决办法:

wx.createSelectorQuery().in(this.selectComponent('#navTabs')).select('.van-ellipsis').boundingClientRect(res1 => {

console.log("res1", res1);

}).exec();

给van-tabs加了一个id="navTabs",然后从源码中找到需要获取的class值,然后就获取到了。

最后一次编辑于  11-25
回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    11-25

    在页面js中

    wx.createSelectorQuery().in(this.selectComponent('#组件id'))...

    ===================

    wxml中

    <第三方组件  id="组件id"></第三方组件>


    11-25
    赞同 1
    回复 19
    • 向晚
      向晚
      11-25
      还是一样,没有结果
      11-25
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-25回复向晚
      你怎么写的
      11-25
      回复
    • 向晚
      向晚
      11-25回复o0o有脾气的酸奶
      const query = wx.createSelectorQuery()
          query.in(this.selectComponent('#myShow')).select('.text').boundingClientRect(function(res) {
            console.log('res1', res)
          })
      11-25
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-25回复向晚
      wxml中呢
      11-25
      回复
    • 向晚
      向晚
      11-25
      11-25
      回复
    查看更多(14)
  • 老张
    老张
    11-25

    外面包一个view。

    11-25
    赞同
    回复 3
    • Eleven
      Eleven
      11-25
      你这个我没看到。抱歉!
      11-25
      回复
    • Eleven
      Eleven
      11-26
      根据楼上酸奶的提示,了解了你这个方法,做过测试了,可以取到整个组件的高度。谢谢你给我提供了一个新的思路。谢谢!
      11-26
      回复
    • Eleven
      Eleven
      11-26
      做了个实验,看到数据了解这个相当于用view包这组件,然后获取view的高度,也就相当于组件的高度了。这个是可以的。谢谢你!实际中我这个需求有点另类,我需要的是组件内的一部分元素的高度,所以感觉上那种.in找组件,然后进去后去指定标签的信息,算是我想要的。谢谢你!
      11-26
      回复
问题标签