一、全局查询
类型搜索:.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';