关于IE,Chrome,Firefox浏览器的字符串拼接问题
来源:互联网 发布:外汇软件 mt4骗局 编辑:程序博客网 时间:2024/04/18 06:13
昨天项目测试的时候,IE8、IE11测试勾选checkbox然后执行保存的时候,竟然执行的结果与预期相反,吓屎我了,最终排查之下,原来是拼接checkbox的值的时候出现的问题。本人对js了解知之甚少,用的不多,最近几个项目都是大批的js,遇到各种小白问题,没办法只好慢慢学了。
HTML:
<input type="checkbox" name="test" value="1"/><span>1</span><input type="checkbox" name="test" value="2"/><span>2</span><input type="checkbox" name="test" value="3"/><span>3</span><input type="checkbox" name="test" value="4"/><span>4</span><input type="checkbox" name="test" value="5"/><span>5</span><br><input type='button' value='提交' onclick="fun()"/></span>
原js代码:
var obj = document.getElementsByName("test");check_val = [];for(k in obj){ if(obj[k].checked){ check_val.push(obj[k].value); }}alert(check_val.length);
勾选1和2之后的执行结果:IE弹出0,Chrome和Firefox弹出2;
难道是IE不支持push()?
修改如下的js:
var obj = document.getElementsByName("test");var s='';for(k in obj){ if(obj[k].checked){ s+=obj[k].value+',';}}alert("s"+s);勾选1和2之后的执行结果:IE弹出s,Chrome和Firefox弹出s1,2,;
真奇怪,怎么IE又闹特别了呢?好吧,继续改
再次修改之后的js:
var obj = document.getElementsByName("test");var s='';for(k=0;k<obj.length;k++){if(obj[k].checked){ s+=obj[k].value+',';}}alert("s"+s);</span>
勾选1和2之后的执行结果:三个浏览器一致的弹出s1,2,
总结一下吧
1.for...in 遍历的不是数组而是对象,所以他遍历访问的是obj的每个属性,而不是数组元素;
2.for....in循环的效率低于for循环;
3.IE貌似不是很好的支持push() [研究ing..........];
4.有待再发现....
1 0
- 关于IE,Chrome,Firefox浏览器的字符串拼接问题
- 关于IE浏览器缓存问题研究和chrome,firefox,浏览器隐私模式的体会。
- Firefox/Chrome/IE浏览器关于CSS和JavaScript的兼容性
- IE、FireFox、Chrome浏览器的全屏实现
- 关于 空格实体在最新的IE、Firefox和Google Chrome浏览器中解析宽度不一致问题的解决
- IE和Chrome、FireFox的ContentType问题!
- JSF1.2页面跳转时,IE和Chrome,FireFox浏览器不兼容的一个小问题
- 各种浏览器的Hack写法(chrome firefox ie等)
- 兼容IE、FireFox、Chrome等浏览器的xml处理函数
- 各种浏览器的Hack写法(chrome firefox ie等)
- 各种浏览器的Hack写法(chrome firefox ie等)
- 各种浏览器的Hack写法(chrome firefox ie等)
- 各种浏览器的Hack写法(chrome firefox ie等)
- IE/Firefox/Chrome等浏览器保存Cookie的位置
- IE/Firefox/Chrome等浏览器保存Cookie的位置
- 各种浏览器的Hack写法(chrome firefox ie等)
- IE/FIREFOX/CHROME等浏览器保存COOKIE的位置
- Firefox、Chrome、IE浏览器开发者工具的使用
- iOS In-App Purchase 内购之使用产品元数据
- [刷题]Majority Number III
- PNG转SVG
- 【密码学】密码学初步印象--可汗学院
- T-SQL on Select 查询语句执行顺序
- 关于IE,Chrome,Firefox浏览器的字符串拼接问题
- MySQL高效运维需要做好的N个方面
- 广告英文
- Ubuntu - Executing a script at startup and shutdown
- ubuntu 14.04 perl: warning: Setting locale failed.
- 常用前端问题解决方法(持续更新中)
- myeclipse10 安装SVN插件
- 网络架构、云平台和微信公众号开发接入--基于嵌入式工程师的视觉
- 强制踢掉空闲的在线用户