强制SVG中DEF的相对链接

强制SVG中DEF的相对链接,svg,d3.js,Svg,D3.js,我试图在一个页面上绘制多个SVG,而每个SVG的defs部分中的ID相互冲突。我希望每个人在自己的定义中只引用面具。目前,它们都使用页面上第一个svg上具有匹配id的掩码。没有svg知道其他的ID,因此他们必须依赖随机数生成器来选择希望不同的ID 如果SVG加载到同一网页中,是否可能或是否需要唯一ID。它们是由d3动态创建的 <svg> <defs> <mask id="temperatureMask"> <

我试图在一个页面上绘制多个SVG,而每个SVG的defs部分中的ID相互冲突。我希望每个人在自己的定义中只引用面具。目前,它们都使用页面上第一个svg上具有匹配id的掩码。没有svg知道其他的ID,因此他们必须依赖随机数生成器来选择希望不同的ID

如果SVG加载到同一网页中,是否可能或是否需要唯一ID。它们是由d3动态创建的

<svg>
    <defs>
        <mask id="temperatureMask">
            <rect width="100%" height="100%" fill="#ffffff">
        </mask>
    </defs>
    <rect mask="#temperaureMask">…etc
</svg>


<svg>
    <defs>
        <mask id="temperatureMask">
            <rect width="100%" height="50%" fill="#dddddd">
        </mask>
    </defs>
    <rect mask="#temperaureMask">…etc
</svg>

页面上的ID必须是唯一的。这包括任何内联SVG。你需要像你建议的那样修改你的d3脚本,在ID中添加一个唯一的数字等