js select

2018-11-28  本文已影响0人  AGEGG

不废话,just show code,注释已经很详尽。
www根目录下新建demo文件夹,复制代码到demo文件夹并命名为year.html,同目录下放jquery.min.js。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <div>
        <select id="select">
            <option>year chooise</option>
        </select>
    </div>
    <script>

    //获取url关键字
    function getQueryVariable(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var reg_rewrite = new RegExp("(^|/)" + name + "/([^/]*)(/|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        var q = window.location.pathname.substr(1).match(reg_rewrite);
        if(r != null){
            return unescape(r[2]);
        }else if(q != null){
            return unescape(q[2]);
        }else{
            return null;
        }
    }

    //如果获取到year,那么year为获取到的,否则为当前年份减1年(减1为统计之前一年年报)
    if (getQueryVariable("year")) {
        var year = getQueryVariable("year");
    } else {
        var year = new Date().getFullYear()-1;
    }
    console.log(year);

    //select 调后台接口
    $("#select").change(function(){
        window.location.href = 'http://localhost/demo/year.html?year=' + $("#select").val();
        console.log($(this).val());
    });

    //ownerTimeAll为伪造数据,本来是接口获取到的用户最早使用到去年的数组
    var ownerTimeAll = [2014,2015,2016,2017];
    //构造select
    for (var i = ownerTimeAll[0]; i<= ownerTimeAll[ownerTimeAll.length - 1]; i++) {
        $("#select").append("<option value='"+i+"' >"+i+"</option>");
    }
    //1.设置Select的Value值为year的项选中 1,2,3皆可
    $("#select").val(year);

    //2.设置Select索引值为1的项选中
    // $("#select ").get(0).selectedIndex=1;
    //3.设置Select的value值为2016的项选中  
    // $("#select option[value='2016']").attr("selected", true);   
</script>

</body>
</html>

原URL关键字在传base64加密遇到"="会找不到参数,已将原文替换新URL关键字查询

第一种方法
 function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return (false);
    }
第二种更好的方法
    //URL关键字
    function getQueryVariable(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var reg_rewrite = new RegExp("(^|/)" + name + "/([^/]*)(/|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        var q = window.location.pathname.substr(1).match(reg_rewrite);
        if(r != null){
            return unescape(r[2]);
        }else if(q != null){
            return unescape(q[2]);
        }else{
            return null;
        }
    }
上一篇下一篇

猜你喜欢

热点阅读