Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我使用<;对象>;标记,是否可以在JS中使用普通DOM方法来访问子元素?_Javascript_Svg - Fatal编程技术网

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方法通常适用于SVG

woops中的DOM,这在示例中应该是文档,您在这里使用的是web服务器还是文件系统。如果是后者,可能就没有办法实现这一点。如果是前者,删除的答案是正确的。没关系,我也看到了这个问题。我现在正在使用文件系统。删除的答案对我不起作用。是否真的需要使用内联SVG才能操作SVG@RobertLongsonwoops,这应该是示例中的文档,您在这里使用的是web服务器还是文件系统。如果是后者,可能就没有办法实现这一点。如果是前者,删除的答案是正确的。没关系,我也看到了这个问题。我现在正在使用文件系统。删除的答案对我不起作用。是否真的需要使用内联SVG才能操作SVG@罗伯特朗森