javascript - setAttribute("",""); 放在for循环中,报错
伊谢尔伦
伊谢尔伦 2017-04-10 17:50:30
[JavaScript讨论组]
var path = document.getElementsByTagName("path");
    (function fillCss(){
    for(var i in path){
      path[i].setAttribute("fill","none");
      path[i].setAttribute("stroke","black");
      path[i].setAttribute("stroke-width","0.5");
    }
    })();

样式被执行但是报错:

Uncaught TypeError: path[i].setAttribute is not a function(…)

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
迷茫

同楼上 quiet_coder 说的
直接 for (var i = 0, l = path.length; i < l; i += 1) ... 就可以了。
for-in 罗列的是对象中PropertyIsEnumerable()的属性,所以path这个类数组中所有PropertyIsEnumerable()的属性都被罗列出了,包含 <length, item, namedItem>这些

PHP中文网

因为path是一个类数组,内部包含一个length属性,这个length属性也是参与for in遍历的,然而他并没有setAttribute,所以此处会报错

巴扎黑

var path = document.getElementsByTagName("path");

(function fillCss(){
for(var i in path.length){
  path[i].setAttribute("fill","none");
  path[i].setAttribute("stroke","black");
  path[i].setAttribute("stroke-width","0.5");
}
})();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号