Fork me on GitHub

联动选择通过ajax获取选择对应的数据

网站有时候需要这种联动然后获取到想对应的数据

思路:

这种的话就是你每次选择哪一个就将这个设置一个标注 表示你现在选择的是哪一个 然后每选择一次就进行一次ajax查询,ajax里面有一个data里面添加你现在的条件,获取到先对应的数据,
显示数据之前需要将对应显示数据的内容里面置空。
代码:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
        .school,.data{height:30px;line-height:30px;border-bottom:1px solid #ccc;}
        label{font-size:18px;floaT:left;}
        .con{floaT:left;font-size:16px;}
        .con .active{color:red;}
        .con span{display:block;padding:0px 5px;float:left;cursor:pointer;}
        .con span:hover{color:red;}
        .content{width:100%;height:250px;border:1px solid red;}
        </style>
    </head>
    <body>
    <div style="width:400px;border:1px solid #ccc;">
    <div class="school">
        <label>人物</label>
        <div class="con">
            <span class="active" data-mark="">开始选择</span>
            <span data-mark="周杰伦">周杰伦</span>
            <span data-mark="蔡依林">蔡依林</span>
            <span data-mark="bigbang">bigbang</span>
            <span data-mark="sj">sj</span>
        </div>
    </div>
    <div class="data">
        <label>页码</label>
        <div class="con">
            <span class="active">1</span>
            <span>2</span>
            <span>3</span>
            <span>4</span>
            <span>5</span>
        </div>
    </div>
    <div class="content"></div>
    </div>
    <script src="js/jquery-1.7.2.js"></script>
    <script>
    $(function(){
        var length=$(".con").length;
        for(var i=0;i<length;i++){
            (function(index){
                $(".con").eq(index).find("span").click(function(){
                    $(".con").eq(index).find("span").removeClass("active");
                    $(this).addClass("active");
                    //条件
                    var json=select();
                    
                    ajax(json.kw,json.pi);
                });
            })(i);
        }
        //获取到标志的条件
        function select(){
            var s;//内容
            var n;//条件
            var l=$(".data span").length;
            for(var i=0;i<l;i++){
                var c=$(".data span").eq(i).attr("class");
                if(c=="active"){
                    n=$(".data span").eq(i).text();
                }
            }
            var l=$(".school span").length;
            for(var i=0;i<l;i++){
                var c=$(".school span").eq(i).attr("class");
                if(c=="active"){
                    s=$(".school span").eq(i).attr("data-mark");
                }
            }
            
            return {
                kw:s,
                pi:n
            };
        };
        //ajax pi页码 pz页数
        function ajax(s,n){
            $.ajax({
                url:'http://cgi.music.soso.com/fcgi-bin/fcg_search_xmldata.q?source=4&w='+s+'字&perpage='+n+'&ie=utf-8',
                type:"GET",
                async: false,
                dataType:"jsonp",
                success:function(data){
                    
                    $(".content").empty();
                    for(var i=0;i<data.list.length;i++){
                        var result=data.list[i];
                        var odiv='<span style="font-size:18px;color:red">名字:'+result.albumname+'</span><span>流量'+result.interval+'</span></br>';
                        $(".content").append(odiv);
                    }
                }    
            })
        };
    });
    </script>
    </body>
</html>

 

demo的地址:https://github.com/GainLoss/linkage-selection

 

posted @ 2017-02-14 10:22  zhang_yx  阅读(1047)  评论(0编辑  收藏  举报