Javascript 如果我使用<;对象>;标记,是否可以在JS中使用普通DOM方法来访问子元素?
如果使用Javascript 如果我使用<;对象>;标记,是否可以在JS中使用普通DOM方法来访问子元素?,javascript,svg,Javascript,Svg,如果使用标记嵌入SVG,是否可以使用普通DOM方法访问子元素 示例 首先是一个简单的SVG: <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0,0 100, 100"> <defs> <style> #cls-1 { fill: none; stroke: #000;
标记嵌入SVG,是否可以使用普通DOM方法访问子元素
示例
首先是一个简单的SVG:
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg"
viewBox="0,0 100, 100">
<defs>
<style>
#cls-1 {
fill: none;
stroke: #000;
stroke-width: 4;
}
</style>
</defs>
<title>Circles</title>
<g id="cls-1">
<circle cx="30" cy="30" r="10" />
<circle cx="60" cy="60" r="10" />
</g>
</svg>
#cls-1{
填充:无;
行程:#000;
笔画宽度:4;
}
圈子
然后是一个HTML文件,它使用嵌入SVG并尝试在脚本中访问SVG中定义的组:
<html>
<body>
<object
type="image/svg+xml"
height="200px"
data="mysvg.svg"
></object>
<button onclick="myAnimate()" />
<script>
const myAnimate = () => {
const group = document.getElementById("cls-1");
};
</script>
</body>
</html>
常量myAnimate=()=>{
const group=document.getElementById(“cls-1”);
};
王寅,这不管用吗
我在devtools中看到这个文档的第一个子元素是#document。所以它似乎有自己的DOM,我想我读过这篇文章,但仍然没有了解它是如何工作的
有没有办法从JS访问id为“cls-1”的元素
编辑:实现这一点的一种方法是在svg本身中添加脚本;DOM方法通常适用于SVGwoops中的DOM,这在示例中应该是文档,您在这里使用的是web服务器还是文件系统。如果是后者,可能就没有办法实现这一点。如果是前者,删除的答案是正确的。没关系,我也看到了这个问题。我现在正在使用文件系统。删除的答案对我不起作用。是否真的需要使用内联SVG才能操作SVG@RobertLongsonwoops,这应该是示例中的文档,您在这里使用的是web服务器还是文件系统。如果是后者,可能就没有办法实现这一点。如果是前者,删除的答案是正确的。没关系,我也看到了这个问题。我现在正在使用文件系统。删除的答案对我不起作用。是否真的需要使用内联SVG才能操作SVG@罗伯特朗森