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

    作者:Comet更新于: 2015-06-19 11:29:37

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

    以下关于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教程学习资料可登陆课课家在线学习平台进行查询学习!

    标签: js教程

课课家教育

未登录