A标签跳转链接并修改样式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #list { width: 150px; margin: 20px auto; }
        #list a { display: block; width: 100%; height: 40px; background: #ccc; margin-top: 10px; color: #fff; text-align: center; line-height: 40px;
        cursor: pointer; }
        #list li:hover { background-color: #FFE17B; }
        #list .active { background-color: orange; }
    </style>
</head>
<body>
    <ul id="list">
        <a href="#">Javascript</a>
        <a href="#">Gulp</a>
        <a href="#">Angular</a>
        <a href="#">Bootstrap</a>
        <a href="#">Jquery</a>
    </ul>
</body>
<script>
    window.onload = function() {
        var index = 0;

        var oList = document.getElementById('list');
        var aA = oList.getElementsByTagName('a');
        var url = window.location.href;

        // 初始化页面
        init();
        

        // 先写一个功能函数,从链接地址中获取 index 的值
        function getIndex(url, key) {

            if (!url) { return; }
            
            var arr = url.slice(url.indexOf('?') + 1).split('&');

            return function() {
                for(var item in arr) {
                    var otherArr = arr[item].split('=');
                    if (otherArr[0] == key) {
                        return otherArr[1];
                    };
                }
            }();
        }

        // 再写一个初始化函数,这个例子中比较简单,只需知道哪一个按钮是当前状态
        function init() {
            index = getIndex(url, 'index') ? getIndex(url, 'index') : 0;

            var i = 0, len = aA.length;
            for(; i<len; i++) {
                aA[i].className = '';

                // 根据不同情况处理一下url,然后给href设置上值,你也可以直接在a标签中添加链接,记得要加上index参数
                if (url.indexOf('?') > -1) {
                    if (url.indexOf('index=') > -1) {
                        url = url.replace(/index=\d*/g, 'index='+i);
                    } else {
                        url += '&index='+i;
                    }
                } else {
                    url += '?index='+i;
                }

                aA[i].setAttribute('href', url);

            }

            aA[index].className = 'active';
        }

    }
</script>
</html>

简单写了一个例子,演示了index通过链接传递,是往自己的页面跳转。如果你想跳转到其他页面,将url改一改就行了

 

来自:https://segmentfault.com/q/1010000003976809 遇见波同学的回答

posted @ 2016-08-18 14:25  爛轲  阅读(2346)  评论(0编辑  收藏  举报