1***@qq.com
1***@qq.com
  • 发布:2026-02-28 16:21
  • 更新:2026-02-28 17:08
  • 阅读:28

uni.createSelectorQuery is not a function

分类:uni-app

HBuilder 4.87 版本 npm run build:h5出现uni.createSelectorQuery is not a function

2026-02-28 16:21 负责人:无 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

HBuilderX 5.01 alpha 测试 vue3 中调用 Uni.createSelectorQuery 复测无问题,请提供复现工程,先自查排除环境问题,升级 HBuilderX 到最新版

Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在 H5 端运行 npm run build:h5 时出现 uni.createSelectorQuery is not a function,是因为 uni.createSelectorQuery 在 H5 端并未实现。根据官方文档,该 API 仅支持 App(iOS、Android、鸿蒙)和小程序端,不支持 Web(H5)

解决方案:

  1. 使用条件编译
    在需要调用 uni.createSelectorQuery 的代码块前后添加条件编译,避免在 H5 端执行:

    // #ifndef H5  
    uni.createSelectorQuery().select('#target').boundingClientRect().exec(res => {  
     console.log(res);  
    });  
    // #endif  
  2. 替代方案(H5 端)
    在 H5 端可直接使用浏览器原生 API,如:

    document.querySelector('#target').getBoundingClientRect();  
  3. 确认平台差异
    如果需跨端兼容,建议封装工具方法,根据平台动态选择实现:

    function getRect(selector) {  
     return new Promise(resolve => {  
       // #ifdef H5  
       resolve(document.querySelector(selector).getBoundingClientRect());  
       // #endif  
       // #ifndef H5  
       uni.createSelectorQuery().select(selector).boundingClientRect().exec(res => resolve(res[0]));  
       // #endif  
     });  
    }  

参考文档:createSelectorQuery 兼容性

内容为 AI 生成,仅供参考

要回复问题请先登录注册