JS-数据筛选

js-数据筛选

html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link rel="stylesheet" href="./css/data.css" />
	</head>
	<body>
		<h1>排行榜</h1>
		<input type="text" / placeholder="输入搜索内容" oninput="seach(value)">
		<table>
			<thead>
				<tr>
					<th>
						排序
					</th>
					<th>
						姓名
					</th>
					<th onclick="sort()">
						交易量
					</th>
				</tr>
			</thead>
			<tbody>

			</tbody>
		</table>
		<script src="js/datas.js">

		</script>
	</body>
</html>

css:

* {
	margin: 0;
	padding: 0;
}

h1 {
	width: 100%;
	height: 60px;
	line-height: 60px;
	text-align: center;
}

input {
	margin-left: 85%;
	border: 0;
}

table {
	width: 100%;
}

td,
th {
	height: 50px;
	text-align: center;
}
.div{
	font-size: 20px;
	font: 900;
}

js:

let data;
let xhr = new XMLHttpRequest();
xhr.open('get', './js/data.json', true);
xhr.send();
xhr.onreadystatechange = function() {
	if (xhr.readyState == 4 && xhr.status == 200) {
		data = JSON.parse(xhr.responseText);
		console.log(data);
		apply(data);
	}
};

function apply(data) {
	let str = ``;
	for (let i = 0; i < data.length; i++) {
		str +=
			`<tr>
					<td>${i+1}</td>
					<td>${data[i].name}</td>
					<td>${data[i].data}</td>
					</tr>`
	}
	if (data.length == 0) {
		str +=
			`<tr>
					<td></td>
					<td class="div">暂无数据</td>
					<td></td>
					</tr>`
		document.getElementsByTagName('tbody')[0].innerHTML = str;
	} else {
		document.getElementsByTagName('tbody')[0].innerHTML = str;
	}
}

function sort() {
	if (sessionStorage.getItem('name') == 1) {
		data.sort((a, b) => a.data - b.data);
		sessionStorage.removeItem('name');
	} else {
		data.sort((a, b) => b.data - a.data);
		sessionStorage.setItem('name', '1');
	}
	apply(data);
}


function seach(target) {
	let arr = [];
	for (let i = 0; i < data.length; i++) {
		console.log(data[i].name);
		if (data[i].name.indexOf(target) >= 0 || String(data[i].data).indexOf(target) >= 0) {
			arr.push(data[i]);
		}
	}

	apply(arr);
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值