javascript - 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>
解决方案
推荐阅读
- html - 图像叠加卡在图像底部,当用户悬停时不会移动
- bash - 别名的有效形式是什么?
- swift - EKEvent event.eventIdentifier 未删除
- android - 迁移 Room 2.1.0 -> 2.2.3(Android / Room / Java:预打包的数据库具有无效架构)
- django - Django 日志在文件大小达到 1050KB 后创建新的日志文件
- selenium - Selenium 块请求,页面加载前的脚本
- java - Jsoup 不会从网页中抓取整个 HTML
- physics - 当衍射光栅不垂直于光线时,衍射公式nλ=dsinθ如何变化?
- android - HttpUrlConnection.connect 失败
- memory - Keil 内存窗口