logo

G

  • 教程
  • API
  • 示例
  • 插件
  • 所有产品antv logo arrow
  • 6.1.26
  • 插件系统介绍
  • 插件结构
  • g-plugin-a11y
  • g-plugin-annotation
  • g-plugin-box2d
  • g-plugin-gpgpu
  • g-plugin-matterjs
  • g-plugin-yoga
  • g-plugin-css-select
  • g-plugin-3d
  • g-plugin-device-renderer
  • g-plugin-canvas-renderer
  • g-plugin-canvaskit-renderer
  • g-plugin-rough-canvas-renderer
  • g-plugin-rough-svg-renderer
  • g-plugin-canvas-path-generator
  • g-plugin-canvas-picker
  • g-plugin-svg-renderer
  • g-plugin-svg-picker
  • g-plugin-dom-interaction
  • g-plugin-dragndrop
  • g-plugin-control

g-plugin-css-select

上一篇
g-plugin-yoga
下一篇
g-plugin-3d

资源

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

在场景图中查找节点时,我们可以使用一些类似 DOM API 的高级查询方式:

  • getElementById 在当前节点子树下按 id 查找单一元素
  • getElementsByName 在当前节点子树下按 name 查找元素列表
  • getElementsByClassName 在当前节点子树下按 className 查找元素列表
  • getElementsByTagName 在当前节点子树下按 tagName 查找元素列表

假设我们构建了如下场景图:

solarSystem<Group>
| |
| sun<Circle name='sun' />
|
earthOrbit<Group>
| |
| earth<Circle>
|
moonOrbit<Group>
|
moon<Circle r='25' />

我们可以使用以上查询方法:

solarSystem.getElementsByName('sun');
// [sun]
solarSystem.getElementsByTagName('circle');
solarSystem.getElementsByTagName(Shape.CIRCLE);
// [sun, earth, moon]

当我们想使用类似 CSS 选择器这样更复杂的查询条件时,就可以选择安装该插件:

  • querySelector
  • querySelectorAll

安装完成后就可以使用属性选择器:

solarSystem.querySelector('[name=sun]');
// sun
solarSystem.querySelectorAll('[r=25]');
// [moon]

安装方式

任意渲染器(g-canvas/g-svg/g-webgl)都可以使用该插件:

import { Plugin } from '@antv/g-plugin-css-select';
// 注册插件
webglRenderer.registerPlugin(new Plugin());

使用方式

我们可以使用类似 DOM API + CSS 选择器的方式进行场景图中的节点查询,完整示例:

solarSystem.getElementsByName('sun');
// [sun]
solarSystem.getElementsByTagName('circle');
solarSystem.getElementsByTagName(Shape.CIRCLE);
// [sun, earth, moon]
solarSystem.querySelector('[name=sun]');
// sun
solarSystem.querySelectorAll('[r=25]');
// [moon]