webAPI

封装兼容函数

2019-05-10  本文已影响0人  椋椋夜色

<!DOCTYPE html>
<html lang="zh-CN">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> 封装兼容函数 </title>

</head>

<body>
    <!-- 封装思想:一段代码可能多个地方要使用,就把这段代码封装成函数
    封装基本步骤:
    1.把相同代码直接当做函数体拷贝到函数里
    2.不能写死的数据当形参传进来 -->
    <ul>
        <!-- <span>专业写bug</span> -->
        <li id="li1">隔壁老王1</li>
        <li>隔壁老王2</li>
        <li id="li3">隔壁老王3</li>
        <li>隔壁老王4</li>
        <li id="li5">隔壁老王5</li>
        <li>隔壁老王6</li>
    </ul>

    <!-- 调用兼容js -->
    <script src="jianRong.js"></script>

    <script>
        // 找到元素
        var li3 = document.getElementById('li3');
        // 获取上一个兄弟元素
        var li3 = shangJian(li3);
        console.log('获取上一个兄弟元素 : ' + li3.innerHTML);
        // console.log(li3);

        // 获取上一个兄弟元素 : <li>隔壁老王2</li>
        

        // 获取下一个兄弟元素
        var li5 = document.getElementById('li5');
        var li5 = xiaJian(li5);
        //  console.log("获取下一个兄弟元素 : " + li5);
        console.log(li5);
        


        // function shangJian(add) {
        //     var jian = add.previousSibling;
        //     // 如果node不等于null 而且还不等于标签,那么就继续往上找
        //     // 因为如果等于null代表找到头了,没必要再往上找
        //     while (jian != null && jian.nodeType != 1) {

        //         //不是标签要继续找上一个的上一个
        //         jian = jian.previousSibling;
        //     }
        //     return jian;
        // }

        // function xiaJian(add) {
        //     //先取下一个兄弟节点
        //     var jian = add.nextSibling;

        //     while (jian != null && jian.nodeType != 1) {
        //         //继续往下找
        //         jian = jian.nextSibling;
        //     }
        //     return jian;
        // }
    </script>
</body>

</html>

下面是js封装的内容:

/**
 * 获取上一个兄弟元素兼容方法
 */

function shangJian(add) {
    var jian = add.previousSibling;
    // 如果node不等于null 而且还不等于标签,那么就继续往上找
    // 因为如果等于null代表找到头了,没必要再往上找
    while (jian != null && jian.nodeType != 1) {

        //不是标签要继续找上一个的上一个
        jian = jian.previousSibling;
    }
    return jian;
}

/**
 * 找到下一个兄弟元素兼容写法
 */

function xiaJian(add1) {
    //先取下一个兄弟节点
    var jian1 = add1.nextSibling;

    while (jian1 != null && jian1.nodeType != 1) {
        //继续往下找
        jian1 = jian1.nextSibling;
    }
    return jian1;
}
上一篇下一篇

猜你喜欢

热点阅读