您实际上不需要jQuery 来编辑 SVG(但您可以使用它)。使用对象标签包含 SVG 文档,如下所示:
<object data="mySVG.svg" type="image/svg+xml" id="mySVG"></object>
然后,您可以通过以下方式操作 SVG 的 DOM document
:
var svgObject = document.getElementById("mySVG");
moSVG.onload = function(){
var svgDoc = moSVG.contentDocument;
//Do SVG manipulation here, using svgDoc instead of document
}
注意使用onload
. 没有它,当 JS 在 SVG 完全加载之前运行时,您可能会遇到错误(特别是如果您在 SVG 中使用图像)。
一旦确定 SVG 已加载,就可以在onload
语句之外的 JavaScript 中使用它。
另一方面,如果你想将 JavaScript 直接嵌入到 SVG 中,你可以<script>
像往常一样使用标签,但需要注意:如果你想要外部 JS,则需要使用 xlink(如以下导入 jQuery 的示例)
<script type="text/ecmascript" xlink:href="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"/>
内部JS可以这样描述:
如果您决定使用它,请确保xlink
在开始<svg>
标签中定义如下(不要更改 url):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
但是,请记住,直接在 SVG 中的 JS在您的 HTML 页面上看不到任何内容。