联动选择通过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