注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

左岸

web前端

 
 
 

日志

 
 

js兼容问题【转】  

2012-07-09 15:45:27|  分类: js |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

1.IE getElementsByName兼容问题

尽量id与name不重名,否则IE有可能会查找到id对应的元素

例如:

<li id="test">

         <input name="test" />

</li>

getElementsByName('test')[0];

非IE选择input元素

IE则选择li元素

解决办法:id和name避免重名

 

2. IE首尾删除空格兼容问题

String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); }

IE调用时提示对象未定义

解决办法:

调用时elem.value.toString().trim();

 

3.获取元素对象兼容所有浏览器

火狐只支持:srcElement

IE只支持:target

chrome srcElement和target都支持

 

解决办法:var element = elem.srcElement || elem.target;

 

4.IE获取子元素问题
var elementChildNodes = element.parentNode.childNodes;

获取子元素IE会产生#text,所以节点建值不同

 

解决办法:排除nodeName = #text 或者 nodeType == 3 

赋值给新数组

var elementChildNodes = element.parentNode.childNodes;

var msg;

var msgArr = [];

for (var i = 0,childNodesCount = elementChildNodes.length; i < childNodesCount; i++) {

         if(elementChildNodes[i].nodeType == 3) {

                   continue;

         }else{

                   msgArr.push(elementChildNodes[i]);

         }

};

 

5,IE创建select,option兼容问题

IE用document.createElement,appendChild,removeChild动态添加option

再获取表单时返回时字符串,不能获取表单元素,IE需要new Option对象

 

解决办法:

动态删除select中的所有options: 

document.getElementById("ddlResourceType").options.length=0; 

 

动态删除select中的某一项option: 

document.getElementById("ddlResourceType").options.remove(indx);  

 

动态添加select中的项option: 

document.getElementById("ddlResourceType").options.add(new Option(text,value)); 

  评论这张
 
阅读(78)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017