【发布时间】:2019-05-26 01:42:16
【问题描述】:
我正在加载一个如下所示的外部 SVG 文件,并且需要将文本添加到我可以引用和操作的每个矩形。为此,我知道我需要将每个矩形放入一个组中,并将文本元素插入同一组中。如果可能的话,我想通过代码来做到这一点,因为更改 SVG 文件的结构将花费很长时间,因为可能会有 100 个矩形。
实现这一目标的最佳方法是什么?我确实浏览了其他一些问题,但找不到我需要的答案。
目前我可以假设的最好情况是我需要选择所有矩形并附加组,或者循环遍历并单独选择每个矩形?
地板.svg
<rect id="SR001" x="288.62" y="220.7" class="st10" width="25.74" height="46.08"/>
<rect id="SR002" x="288.62" y="266.7" class="st10" width="25.74" height="46.08"/>
<rect id="SR003" x="288.62" y="312.49" class="st10" width="25.74" height="46.08"/>
<rect id="SR004" x="288.62" y="375.62" class="st10" width="25.74" height="46.08"/>
<rect id="SR005" x="288.62" y="421.7" class="st10" width="25.74" height="46.08"/>
<rect id="SR006" x="288.62" y="467.49" class="st10" width="25.74" height="46.08"/>
<rect id="SR007" x="288.62" y="513.62" class="st10" width="25.74" height="46.08"/>
这就是 SVG 文件的加载方式,看起来工作正常。我还有其他功能可以让我在某些鼠标事件等上与矩形进行交互。
javascript
d3.xml("floor.svg", function(xml) {
document.body.appendChild(xml.documentElement);});
【问题讨论】:
-
文本的数据结构是什么样的,如何加载数据,如何将文本与矩形匹配?
-
这项工作仍在进行中。我试图首先克服获取文本的最初挑战。文本很可能来自外部 CSV 文档。 CSV 中的行标题将匹配已创建的组,“SR001”等。我希望使用 CSV 中相应列的数据更新显示的文本应该非常简单。当我到达那个阶段时可能会回来寻求更多帮助:)
标签: javascript d3.js svg