这个功能很有意思,下面我把我的示例给大家看看!
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> <title></title> <link rel="stylesheet" href="css/index.css" /> </head> <body> <div id="tb"> <img src="img/huoy.jpg" width="100%" height="100%"/> </div> <input id="su" placeholder="请输入搜素内容" oninput="sr()"/> <div id="xuanx"> <p>序号</p> <p id="xing">姓名</p> <p id="jy" onclick="jiaoy()">交易量</p> <p id="gs">公司</p> </div> <div id="nrong"> <div id="nrone"> <p>1</p> <p>刘志杰</p> <p>999</p> <p>五头牛</p> </div> </div> <script src="js/index.js"></script> </body> </html>
#tb{ width: 100%; height: 150px; background-color: mediumpurple; text-align: center; font-size: 20px; line-height: 55px; } #tb img{ background-size: 100%; } #nrong{ width: 100%; height: 600px; background-color: lightskyblue; overflow: scroll; } #su{ width: 30%; height: 30px; background-color:white; margin-left: 35%; color: rebeccapurple; } #xuanx{ width: 100%; height: 80px; background-color: rgba(193, 193, 193, 0.2); display: flex; justify-content: space-around; line-height: 45px; font-size: 20px; } #nrone{ width: 100%; height: 60px; background-color: slategray; display: flex; justify-content: space-around; font-size: 18px; }
上面是基本样式,还是很不错的!
//声明一个全局变量 mg let mg; //获取HTML中的交易量; let jy = document.getElementById('jy'); //获取HTML中的内容框; let nrong = document.getElementById('nrong'); //获取input输入款; let su = document.getElementById('su'); //声明new XMLHttpRequest; let mh = new XMLHttpRequest(); //使用 open 方法指定要请求的地址、类型和方式; mh.open('get', 'mohu.json', true); //使用send方法发送请求; mh.send(); //绑定 onreadystatechange 事件; mh.onreadystatechange = function() { if (mh.readyState == 4 && mh.status == 200) { let text = mh.responseText; console.log(text); let data = JSON.parse(text); console.log(data); mh = data; wb(mh); } } //判断 readyState 和 status 的状态; // 接收数据通过 json 转换使用,是用json将数据转化为js可用的形式; //mg=请求过来的数据; //调用wb渲染; //渲染函数 //创建一个函数 函数名为wb function wb(data) { let str = ""; for (let i = 0; i < data.length; i++) { str += `<div id="nrone"> <p>${[i+1]}</p> <p>${data[i].num}</p> <p>${data[i].volume}</p> <p>${data[i].firm}</p> </div>`; } nrong.innerHTML = str; } //声明一个空字符串; //for循环 循环data数据; //将自己创的jon数据与HTML的内容拼接; //用innerHTHL给最外层的nrong进行渲染; //声明一个全局变量jiao,变量值为 true(交易量); let jiao = true; //创建函数 函数名为jiao(){ function jiaoy() { jiao = !jiao; let arr = []; if (jiao == true) { arr = mh.sort(function(a, b) { return a.volume - b.volume; }); } else { arr = mh.sort(function(a, b) { return b.volume - a.volume; }); } wb(arr); } //通过点击让jiao的值取反 jiao = !jiao; // 创建新的空数组 //if判断(变量值为true时){ //从小到大排序 赋值给新数组; // }else{ //从大到小排序 赋值给新数组; // } // 调用渲染函数 传递的数据是新数组; //} //创建函数 函数名为sr; function sr() { let arr2 = []; let val = document.getElementById('su').value; for (let b = 0; b < mh.length; b++) { if (String(mh[b].num).indexOf(val) > -1 || String(mh[b].volume).indexOf(val) > -1 || String(mh[b].firm).indexOf( val) > -1) { arr2.push(mh[b]); } } wb(arr2); } //给input输入框绑定 oninput事件; //声明一个空数组 arr2; //声明一个变量 val 让它的值等于输入框的值; //for 循环数据data; //if 判断(姓名、交易量、公司的isdexof大于-1时){ //把这一数据放到新数组里; // } //调用渲染函数 传递的数据是新数组;
这是写在js里的数据!
[{ "num":"刘志杰", "volume":"999", "firm":"五头牛" }, { "num":"王竹森", "volume":"899", "firm":"三只羊" }, { "num":"王炸", "volume":"668", "firm":"五头牛" }, { "num":"李炮", "volume":"558", "firm":"三只羊" }, { "num":"小屁孩", "volume":"748", "firm":"一只鸡" }, { "num":"小破孩", "volume":"957", "firm":"五头牛" }, { "num":"小妮子", "volume":"967", "firm":"一只鸡" }, { "num":"江流儿", "volume":"698", "firm":"三只羊" }, { "num":"江河", "volume":"158", "firm":"三只羊" }, { "num":"王山河", "volume":"258", "firm":"一只鸡" }, { "num":"刘志", "volume":"624", "firm":"三只羊" }, { "num":"刘杰", "volume":"325", "firm":"五头牛" }, { "num":"冯子材", "volume":"681", "firm":"三只羊" }, { "num":"冯源", "volume":"199", "firm":"三只羊" }, { "num":"熊大", "volume":"919", "firm":"五头牛" }, { "num":"熊二", "volume":"932", "firm":"一只鸡" }, { "num":"光头强", "volume":"369", "firm":"三只羊" }, { "num":"司马懿", "volume":"479", "firm":"三只羊" }, { "num":"司马光", "volume":"874", "firm":"一只鸡" }, { "num":"司马迁", "volume":"581", "firm":"三只羊" }, { "num":"刘禅", "volume":"447", "firm":"三只羊" }, { "num":"刘备", "volume":"789", "firm":"五头牛" }, { "num":"马超", "volume":"339", "firm":"一只鸡" }, { "num":"马子", "volume":"579", "firm":"三只羊" }, { "num":"郝海燕", "volume":"589", "firm":"三只羊" }, { "num":"崔有病", "volume":"249", "firm":"五头牛" }, { "num":"崔油饼", "volume":"123", "firm":"三只羊" }, { "num":"吕德华", "volume":"321", "firm":"一只鸡" }, { "num":"吕布", "volume":"558", "firm":"五头牛" }, { "num":"吕小布", "volume":"682", "firm":"五头牛" } ]
这是json数据!
结构就这么多!