zoukankan      html  css  js  c++  java
  • javascript重置(base层)(。。。。不完整)

    1、nextSibling浏览器兼容问题

    <ul>
            <li id="item1"></li>
            <li id="item2"></li>
            <li id="item3"></li>
    </ul>
    var item1=document.getElementById("item1");
    alert(item1.nextSibling.id);
    alert(item1.nextSibling.nodeType);
    alert(document.getElementsByTagName("ul")[0].childNodes.length);

    ie8,ie7弹出的内容依次是:item2,1,3

    firefox,ie9+,chrome弹出的内容依次是:undefined,3,7 原因是:nodeType=3表示是文本节点,而不是1元素节点。firefox浏览器将包括空白、换行等文本信息也当做childNodes中的一员,而ie8会忽略它,只将DOM节点当做是childNodes的一员。

    解决方案一:缩进HTML(不推荐)

    <ul><li id="item1"></li><li id="item2"></li><li id="item3"></li></ul>

    解决方案二:

        function getNextNode(node) {
            node = typeof node == "string" ? document.getElementById(node) : node;
            var nextNode = node.nextSibling;
            if (!nextNode) return null;
    //        if(!document.all){      //不能区分出ie9,ie10
            if ($.support.leadingWhitespace) {
                while (true) {
                    if (nextNode.nodeType == 1) {
                        break;
                    }  //如果下一个节点是元素节点则返回
                    else {
                        if (nextNode.nextSibling) {    //如果下下个节点存在
                            nextNode = nextNode.nextSibling;
                        } else {
                            break;
                        }
                    }
                }
            }
            return nextNode;
        }
        var nextNode = getNextNode("item1");
        alert(nextNode.id);
        var nextNode2 = getNextNode("item2");
        alert(nextNode2.id);
  • 相关阅读:
    Flask安装教程
    Django进阶(2)
    反编译源码
    Jmeter之Bean shell使用(一)
    接口测试基础(fiddler、postman的使用、python实现测试接口程序)
    Fiddler显示服务器IP的方法
    web测试与app测试的区别
    互联网产品接入支付功能如何测试?
    web测试中的测试点和测试方法总结
    使用JMeter建立接口测试
  • 原文地址:https://www.cnblogs.com/zhaojieln/p/4332814.html
Copyright © 2011-2022 走看看