css - Snap.svg:如何选择最外层 SVG 元素的所有子元素,但不从(可能)嵌套的 SVG 元素中选择
问题描述
我试图从片段的最外层 SVG 元素中获取所有(直接)子元素 - 或者换句话说:片段的所有 2 级元素。我使用这段代码:fragment.selectAll("svg>*")
只要给定片段中只有一个 SVG 元素,此方法就可以工作。但是,如果有嵌套的 SVG 元素(根据https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg可以),这也会返回层次结构中更靠后的元素 -意思是第 3、第 4 或更高级别。
<svg id="svg_1" height="380mm" width="490mm" viewBox="0 0 490 380" version="1.0">
<g id="g_1" transform="translate(57.5,47.5)">
<svg id="svg_2" version="1.1" height="5" width="5" viewBox="0 0 5 5">
<path d="m 4.9997035,2.4940359 ... z"/>
</svg>
</g>
<g id="g_2" transform="translate(57.5,97.5)">
<svg id="svg_3" version="1.1" height="5" width="5" viewBox="0 0 5 5">
<path d="m 4.9997035,2.4940359 ... z"/>
</svg>
</g>
...
</svg>
我的结果是,我只想要g
元素(ids:g_1
和g_2
),但我也得到了这两个path
元素。
似乎很有希望用这一行替换上面的行:
fragment.select("svg").children()
但是,这一行包含一堆#text 元素,这些元素不包含在原始元素中,我不知道如何从查询结果中删除它们。
解决方案
推荐阅读
- java - 在列表中查找前 4 个最常见的对象
- mongodb - 如何向存储在 mongo 集合中的字符串格式存储的所有日期添加年份
- amazon-web-services - Amazon SNS 推送通知 - 单击推送后重定向到 Web url
- heroku - 如何根据另一个值设置运行时环境变量
- reporting-services - 用于年度比较的 SSRS 列组
- python-3.x - 如何为 tkinter 画布对象上的“条”设置动画以模拟排序算法的运行?
- shell - zsh:如果已定义,则打印带有周围文本的变量?
- html - 将数据从 jinja 取回 Flask?
- react-native - 如何通过单击另一个组件的按钮使视图在一个组件中可见?
- c++ - 如何在 Linux 上使用 C++ opencv 库解码 QRCODE?