js循环改变div颜色具体方法


Posted in Javascript onJune 25, 2013

在使用javascript过程中,想循环遍历一个数组,经常使用的语法有两种:

 for (var i; i < array.length; i++) {
     statement;
 }
 for (var i in array) {
     statement;
 }

这两种用法看起来能做同样的事情,但实际上两个循环的循环次数一般是不一样的。
源码如下:
 <!DOCTYPE html>
 <html>
 <head>
 <style>
 #button{text-align:center;}
 #outer{width:330px; height:100px; margin:10px auto;}
 #outer div{float:left;width:100px;height:100px;margin:0px 5px;background:black;}
 </style> <script>
 window.onload = function() {
     var obutton = document.getElementsByTagName("button")[0];
     var outer = document.getElementById("outer");
     var outerDiv = outer.getElementsByTagName("div");
     obutton.onclick = function() {
         for(var p in outerDiv) outerDiv[p].style.background = "red";
     };
 };
 </script>
 </head>
 <body>
 <div id="button">
 <button>点击变红色</button>
 </div>
 <div id="outer">
     <div></div>
     <div></div>
     <div></div>
 </div>
 </body>
 </html>

这段代码用了 for - in 语句做循环,看上去没有问题。
可是在浏览器调试的时候,会报错:
"Uncaught TypeError: Cannot set property 'background' of undefined"
为什么会这样呢?
如果我们把 stament 的内容改一下,就会发现问题了:
 for(var p in outerDiv) alert(p);
结果输出是:0 1 2 length item
所以,当 property 取到 length 和 item 时,再试图用调用 style 方法,当然就 undefined 了。 修改如下:

 <!DOCTYPE html>
 <html>
 <head>
 <style>
 #button{text-align:center;}
 #outer{width:330px; height:100px; margin:10px auto;}
 #outer div{float:left;width:100px;height:100px;margin:0px 5px;background:black;}
 </style> <script>
 window.onload = function() {
     var obutton = document.getElementsByTagName("button")[0];
     var outer = document.getElementById("outer");
     var outerDiv = outer.getElementsByTagName("div");
     obutton.onclick = function() {
         for (var i = 0; i < outerDiv.length; i++){
             outerDiv[i].style.background = "red";
         }
     };
 };
 </script>
 </head>
 <body>
 <div id="button">
 <button>点击变红色</button>
 </div>
 <div id="outer">
     <div></div>
     <div></div>
     <div></div>
 </div>
 </body>
 </html>
Javascript 相关文章推荐
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
Feb 22 Javascript
js螺旋动画效果的具体实例
Nov 15 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
jQuery实现强制cookie过期方法汇总
May 22 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
基于JavaScript实现仿京东图片轮播效果
Nov 06 Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 Javascript
在vue中通过axios异步使用echarts的方法
Jan 13 Javascript
JS实现获取word文档内容并输出显示到html页面示例
Jun 23 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 Javascript
js点击更换背景颜色或图片的实例代码
Jun 25 #Javascript
js操作iframe的一些方法介绍
Jun 25 #Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 #Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 #Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 #Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
Jun 24 #Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
Jun 24 #Javascript
You might like
实用函数3
2007/11/08 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
python删除过期文件的方法
2015/05/29 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
《草虫的村落》教学反思
2014/02/16 职场文书
《开国大典》教学反思
2014/04/19 职场文书
作风建设演讲稿
2014/05/23 职场文书
中学清明节活动总结
2014/07/04 职场文书
工作保证书
2015/01/17 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
施工现场安全管理制度
2015/08/05 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
python实现层次聚类的方法
2021/11/01 Python