下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

js教程_关于JS代码处理兼容的问题

作者:Comet     来源: 课课家 www.kokojia.com点击数:574发布时间: 2015-06-19 11:29:37

标签: js教程

大神带你学编程,欢迎选课

以下关于JS代码兼容总结的问题,相信很多程序员都为这一点细节而且操心,下面结合JS教程一般用于处理前台页面。

JS教程JS代码兼容总结的问题
1.IE getElementsByName兼容问题
尽量id与name不重名,否则IE会查找到id对应的元素
例如:



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获取子元素问题
获取子元素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
再获取表单时返回时字符串,不能获取表单元素

解决办法:
动态删除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));
更多相关JS教程学习资料可登陆课课家在线学习平台进行查询学习!

赞(24)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程