const tabs = ["#section-0", "#section-1", "#section-2", "#section-3"];
const query = uni.createSelectorQuery().in(instance.proxy);
tabs.forEach(tab=>{
query.select(tab)?.boundingClientRect();
})
//执行所有查询
query.exec(res=>console.log(res));

- 发布:2025-09-22 11:32
- 更新:2025-09-22 14:18
- 阅读:22
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 11
第三方开发者工具版本号: 1.06.2504030
基础库版本号: 3.9.2
项目创建方式: CLI
CLI版本号: 1.4.8
示例代码:
操作步骤:
const tabs = ["#section-0", "#section-1", "#section-2", "#section-3"];
const query = uni.createSelectorQuery().in(instance.proxy);
tabs.forEach(tab=>{
query.select(tab)?.boundingClientRect();
})
//执行所有查询
query.exec(res=>console.log(res));
const tabs = ["#section-0", "#section-1", "#section-2", "#section-3"];
const query = uni.createSelectorQuery().in(instance.proxy);
tabs.forEach(tab=>{
query.select(tab)?.boundingClientRect();
})
//执行所有查询
query.exec(res=>console.log(res));
预期结果:
[
{id:'section-0',...},{id:'section-1',...},{id:'section-2',...},{id:'section-3',...}
]
[
{id:'section-0',...},{id:'section-1',...},{id:'section-2',...},{id:'section-3',...}
]
实际结果:
[
{id:'section-4',...},{id:'section-1',...},{id:'section-2',...},{id:'section-3',...}
]
[
{id:'section-4',...},{id:'section-1',...},{id:'section-2',...},{id:'section-3',...}
]
bug描述:
在使用uni.createSelectorQuery().in(instance.proxy)查询多次select输入查询id与结果不一致,如 ["#section-0", "#section-1", "#section-2", "#section-3"],批量forEarch,然后query.exec,得到的确是 ["#section-4", "#section-1", "#section-2", "#section-3"]为id的元素。
const tabs = ["#section-0", "#section-1", "#section-2", "#section-3"];
const query = uni.createSelectorQuery().in(instance.proxy);
tabs.forEach(tab=>{
query.select(tab)?.boundingClientRect();
})
//执行所有查询
query.exec(res=>console.log(res));
结果与预计不一致
1 个回复
DCloud_UNI_JBB
试试原生微信小程序有没有这个问题