ThingJS初级-查询语句

一、全局查询

类型搜索:.Thing   .Room  .Floor  .Building  .Campus  .Marker  .Car(自定义类型)

//根据id查询 搜素id为2271的物体
const car = app.query('#2271')[θ];

//根据uuid查询搜索uuid为2271的物体,uuid为唯一标识
const car = app.query('##2271')[0];

//根据name查询搜索name为'care1'的物体
const car = app.query('carθ1')[θ];

//根据正则表达式匹配name中包含'car'的物体
const cars = app.query(/car/);

// 根据正则查询
var reg = new RegExp('car');
var cars = app.query(reg);

//根据类型查询 搜索类型是'Building'的物体
var buildings = app.query('.Building');

//根据属性查询搜索名字中包含'car'、并且属性字段userData中马力大于50的物体
app.query(/car/).query('[userData/power>50]')

// 根据类型查询
app.query('.Building')
app.query('.Campus')
app.query('.Thing')
app.query('.Floor')
// 根据自定义类查询
app.query('.Car')

二、局部查询

//在建筑内查询查询建筑中levelNum>1的物体const building = app.query('.Building')[θ];
building.query('[levelNumber>1]').forEach((obj)=>{
    obj.style.outlineColor ='#ff00do';
});

//在楼层内查询查询某一楼层里name包含cabinet的物体
const floor = app.query('.Floor')[θ];
floor.query(/cabinet/).forEach((obj)=>{
    obj.style.outlineColor ='#ffooeo';
});

三、操作查询结果

//获取查询结果的第一个元素
var obj = app.query('.Thing')[θ];
console.log(obj.name);

//以数组方式遍历查询结果
var objs = app.query('.Thing');
for (var i =θ; i<objs.length;i++){
    console.log(objs[i].name);
}

//以forEach方式遍历查询结果
app.query('.Thing').forEach((obj) => {
    console.log(obj.name);
});

//给查询结果绑定事件
app.query('.Thing').on('click',function(ev){
    console.log(ev.object.name);
});

四、属性筛选

//或操作
//先获取"自行车"集合,再添加“汽车”集合
var selector = app.query('["类型"="自行车"]');
selector.add('["类型"="汽车"]')
selector.forEach((obj) => {
    console.log(`${obj.name}${obj.userData['类型']}${obj.userData['价格']}`)
})
selector.style.outlineColor ='#ffeooe';

//与操作
//在价格大于1000的物体中再查询类型为"汽车"的物体
var selector = app.query('["userData/价格”>1000]').query('["类型"="汽车"]');
selector.forEach((obj) => {
    console.log(`${obj.name}${obj.userData['类型']}${obj.userData['价格']}`)
})
selector.style.outlineColor ='#ffeoog';

//非操作
//先查询得到所有物体再排除掉“自行车”
var selector = app.query('.Thing');
selector.not(app.query('["类型"="自行车"]'));selector.forEach((obj) => {
    console.log(`${obj.name}${obj.userData['类型']}${obj.userData['价格']}`)
})
selector.style.outlinecolor ='#ffoooe';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁宇宙中有朵云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值