首页 > 解决方案 > className 数组循环上的 SVG setAttribute 不起作用

问题描述

我已经研究并尝试了这个看似简单的代码片段我能想到的每一个变体,但它错误地表明该元素是未定义的。我只是想用“眼睛”类设置所有元素的高度。

我可以将 0 和 1 代写为“k”,我可以将循环设置为 k<1 也可以,但不适用于 k<2,并且显然有两个类元素。有人可以告诉我我做错了什么吗?

<html>
   <svg>
      <rect class="eyes" transform="rotate(6 352 241)" x="352" y="241" width="70" height="3" fill="#DDC093"/>
      <rect class="eyes" transform="rotate(-8 230 245)" x="230" y="245" width="70" height="3" fill="#DDC093"/>
   </svg>
   <script>
      allEyes = document.getElementsByClassName('eyes')

      function blink(eyeno) {
        for (var k = 0; k < allEyes.length; ++k) {
          x01 = setTimeout(function() {
            allEyes[k].setAttribute("height", 20)
          }, 200);
        }
      };
      blink('eyes');
   </script>
</html>

标签: javascriptsvgattributesclassname

解决方案


推荐阅读