JavaScript第二个循环没有't更改CSS
JavaScript second loop doesn't change CSS
我正在使用GreaseMonkey对特定网站的某些元素进行重新着色。但是,当使用下面的循环时,只有第一个循环会进行任何更改。更改循环的顺序将只允许第一个循环生效。
var i;
var evenRows = document.getElementsByClassName("even");
for (i=0;i<=evenRows.length;i++) { evenRows[i].style.backgroundColor = '#555'; }
var oddRows = document.getElementsByClassName("odd");
for (i=0;i<=oddRows.length;i++) { oddRows[i].style.backgroundColor = '#333'; }
var theLinks = document.getElementsByTagName("a");
for (i=0;i<=theLinks.length;i++) { theLinks[i].style.color = '#aaa'; }
问题出在循环逻辑上,它抛出了一个JS错误。数组的索引为0,但length
属性的索引为1。在循环中,您正在检查计数器是否小于或等于数组的长度,这意味着当i
等于evenRows.length
时,循环仍将运行。您无法访问evenRows[evenRows.length]
,因为它不存在。
将i <= evenRows.length;
更改为i < evenRows.length;
,效果很好。
JS小提琴:http://jsfiddle.net/grammar/vdwxua7s/1/
相关文章:
- 使用javascript单击同一按钮,在两种样式之间更改css值
- JavaScript在更改css时停止工作
- 更改CSS以允许使用Javascript控制DIV位置
- 使用AngularJS动态更改css属性
- 更改css链接并等待加载新的css
- Javascript:动态更改CSS文件+Cookie
- 根据Meteor集合中的元素数量更改css
- 如何使用Angular2在点击时切换选项卡和更改css类
- 如果类中的数字大于0,请使用JavaScript更改CSS背景
- 更改css子元素导航树
- Javascript-如何更改css类的属性
- 我想让用户使用可选面板更改 CSS.我应该怎么做
- 根据小时和分钟更改 CSS
- 在 Javascript 中更改 CSS 子类的值
- 我可以更改CSS中文本区域调整大小句柄的设计吗
- 使用JS更改css
- 使用Jquery和JS更改CSS
- 使用JavaScript更改CSS类名
- 使用javascript变量更改css背景颜色
- 如何使用js有条件地更改css样式