在开发中,引入了场景,添加了对象,那我们如何尽快的找到对象呢?

方法如下:

1.在父类/子类树上,通过parent、children属性找到要控制的对象

2.在分类对象属性树上,通过类身上分类属性找到要控制的对象

3.使用query方法

ThingJS 的 query 方法,包括 全局 和 局部,全局查询是对场景内的所有对象进行查询;局部查询 是在一个对象的子对象中进行查询,如在一个楼层内查询某个设备;如果还需要更精确的缩小查询范围,还可以对查询结果进行继续查询;

查询条件一般是一个字符串,如:car01.Thing#100,或正则表达式,可以根据物体的名称、类型、包含的属性等进行查询,也可以对某个对象的子物体进行查询;

方法一、使用query方法查询对象

全局查询

app.on('load', function () {let buildings = app.query('.Building');buildings.style.outlineColor = "#0000ff";
});

局部查询

app.on('load', function (ev) {let buildings = app.query('.Building');buildings.forEach(function (building) {building.query('[levelNum > 1]').forEach(function(obj) {obj.style.outlineColor = "#0000ff";})})
});

效果图

根据对象名称进行查询

app.query("car01");//car01为对象名称
app.query('/car/');//正则匹配,查询带有car名称的对象

根据物体类进行查询

app.query('.Thing')//查询thing类的物体
app.query('.Building')//查询building建筑类
app.query('.Floor')//查询floor楼层类
app.query('.Room')//查询room房间类

根据对象ID进行查询

app.query('#100')//id查询记得加#,格式可以是数字也可以是字符串,例如:#100,#userID100

查询某一类物体类型的

app.query('[alarm]')//查询类型全部是alarm的对象

准确查询某一类型的物体

app.query('["userData/物体类型"="粮仓"]')//根据物体属性查询

查询levelNum>2的对象

app.query('[levelNum>2]')//查询某一建筑2层以上的楼层对象,目前支持>,<,=,>=,<=

筛选查询操作

app.query('.Thing').query('[品牌=IBM]');//在查询结果中再进行查询var sel = app.query('[品牌=AA]');
app.query('.Thing').add(sel)//或查询,查询.Thing类的或者属性[品牌=AA]的app.query('.Thing').not('car01');//排除查询,查询除了car01的所有Thing

方法二、在父类/子类树上,通过parent、children属性找到要控制的对象

let buildings = app.query('.Building');
buildings.forEach(function (building) { //建筑类building.floors.forEach(floor => { //建筑下的楼层类floor.style.opacity = 0.5;})
})

总结:查询结果返回的是一个Selector对象,可以对查询结果直接绑定事件,或一些批量操作;

通过控制台打印查看相关属性或方法进行相关操作

浅谈ThingJs之对象查询方法相关推荐

  1. 浅谈tcpwrapper的基本使用方法

    浅谈tcpwrapper的基本使用方法 曾几何时,不知道你是否与笔者小神一样,有在FreeBSD下实现与WIN2000中的IPSec安全策略实现访问控制的一样功能的想法呢?也许这对刚刚接触FreeBS ...

  2. 必看!清华大学刘洋教授“浅谈研究生学位论文选题”方法,3月7日1小时视频公开课(附视频PPT下载)...

    来源:专知 本文约700字,建议阅读5分钟 清华大学计算机系长聘教授刘洋老师在线讲授了关于<浅谈研究生学位论文选题方法>的课程. 标签:论文研究方法 [ 导读 ]在继续抗击疫情之际,3月7 ...

  3. 【强烈推荐】清华大学刘洋老师【浅谈研究生学位论文选题方法】讲座

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在继续抗击疫情之际,3月7日,清华大学计算机系长聘教授刘洋老师在线讲授了关于< ...

  4. Java对象查询方法:Jxpath(转译)

    Java对象查询方法:Jxpath(转译) 在JAVA对象中,如何进行有效的查询呢,这一直是个很值得探讨的问题.大家知道,在XML中,要找元素如何找呢?没错,通过XPATH 是个不错的办法,同样道理, ...

  5. 经验 | 清华大学计算机系教授~浅谈研究生学位论文选题方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :清华大学,专知 AI博士笔 ...

  6. MySQL子查询的优缺点_浅谈mysql的子查询

    浅谈mysql的子查询 mysql的子查询的优化一直不是很友好,一直有受业界批评比较多,也是我在sql优化中遇到过最多的问题之一,你可以点击这里 ,这里来获得一些信息,mysql在处理子查询的时候,会 ...

  7. 计算机维护与维修方法,浅谈计算机维护与维修方法

    题目:浅谈计算机维护与维修方法 作者:周旺红手机:159******** 单位:江苏省徐州机电工程高等职业学校 地址:江苏省徐州市云龙区东店子徐州机电工程高等职业学校云龙校区 邮编:221000 [摘 ...

  8. 浅谈 MySQL 连表查询

    浅谈 MySQL 连表查询 连表查询是一把双刃剑, 优点是适应范式, 减少数据冗余; 缺点是连表查询特别是多张表的连表会增加数据库的负担, 降低查询效率. 简介 连表查询就是 2 张表或者多张表的联合 ...

  9. 浅谈之互联网赚钱的方法

    在互联网上赚钱,努力做得的人都成功了,不过还是有很多人只是把互联网当作一个娱乐的工具看待,却没有想过它能帮你赚钱,即使我们有正经的工作职业,也可以在下班之余利用互联网来赚点生活费.下面可以看看一些互联 ...

最新文章

  1. linux内核功能有,好消息!LINUX内核2.6.18终于支持实时功能了
  2. 【树的直径】解题报告: luogu P3629 [APIO2010]巡逻(树的直径,位运算成对变换,思维)
  3. 首个波士顿动力机器狗买家秀:化身监工,确认路线后就能自动巡航
  4. python基于百度接口的语音识别_Python基于百度接口的语音识别
  5. JavaScript 经常忽略的 7 个基础知识点
  6. android ui自动化框架选型,Appium UI 自动化框架之我见 (开源)
  7. findbugs 接口文档_Java代码审查工具findbugs的使用总结
  8. Java如何实现原子操作
  9. ASP.NET实现PDF大文件的浏览
  10. c语言输出中文为乱码_C语言输出乱码问题
  11. 计算机文化基础的重点,计算机文化基础重点知识(1)
  12. redis雪崩 击穿 穿透
  13. 关于iexplore.exe占用CPU100%的问题
  14. adb 查看固件版本
  15. ssh 工具 socket 10106 连接不上
  16. 苹果软件更新在哪里_苹果iOS 14.1/iPadOS 14.1正式版发布:新增更新机型[多图]-软件资讯...
  17. 送书活动还有最后一本书,怎么办呢?
  18. 工控 组态王6.60 SP3软件7.5 SP4 授权软件狗 USB 硬件狗 分享 下载
  19. Java集合详解--什么是Map
  20. [Unity3D]Unity3D游戏开发之Logo渐入渐出效果的实现

热门文章

  1. Python画正方体
  2. 图像处理:推导Canny边缘检测算法
  3. 厚积薄发打卡Day26:狂神说Java之JUC并发编程<代码+笔记>(上)
  4. hadoop-HFDS
  5. 2021年3月7日 蚂蚁金服的OceanBase Java后端开发实习面经(一面)
  6. Linux三剑客学习笔记
  7. 三次握手和四次挥手知识总结(超详细)
  8. 代码覆盖度-代码覆盖度概念以及度量方法
  9. CircRNA–miRNA–mRNA调控网络分析
  10. 鸿蒙内核阅读笔记-任务管理(los_task.c)