原 :
升序asc :
降序desc :
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
</head>
<body>
<div class="sort desc" style="color: red">排序</div>
<div class="subject">
<div class="part">
<p><input class="num" type='text' value='99'/></p>
</div>
<div class="part">
<p><input class="num" type='text' value='0'/></p>
</div>
<div class="part">
<p><input class="num" type='text' value='59'/></p>
</div>
<div class="part">
<p><input class="num" type='text' value='19'/></p>
</div>
<div class="part">
<p><input class="num" type='text' value='89'/></p>
</div>
<div class="part">
<p><input class="num" type='text' value='0'/></p>
</div>
</div>
</body>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function () {
// ---- 排序------
$(".sort").click(function () {
var _this = $(this);
if (_this.hasClass("desc")) {
sortByInput(desc);
_this.removeClass("desc").addClass("asc");
} else {
sortByInput(asc);
_this.addClass("desc").removeClass("asc");
}
});
var asc = function (a, b) {
return $(a).find('input').val() > $(b).find('input').val() ? 1 : -1;
};
var desc = function (a, b) {
return $(a).find('input').val() > $(b).find('input').val() ? -1 : 1;
};
var sortByInput = function (sortBy) {
var sortEle = $('.subject>.part').sort(sortBy);
$('.subject').empty().append(sortEle);
};
})
</script>
</html>
更新:
效果图:
代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>排序</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="// <!--阿里图标库地址-->.css">
</head>
<style>
.read-role {
background-color: #fff;
color: #828282;
font-size: 0.3rem;
height: 0.8rem;
line-height: 0.6rem;
padding: 0 5% 0 5%;
border-bottom: 1px solid #eee;
}
.read-num {
background-color: transparent;
width: 0.5rem;
border: none;
text-align: center;
}
.part {
font-size: .3rem;
height: 1rem;
line-height: 1rem;
}
.sort, .sort01 {
width: 50%;
display: inline-block;
float: left;
line-height: 0.8rem;
}
.sortcolor, .blue {
color: #57d9f1 !important;
}
.icon-paixujiantouxia, .icon-paixujiantoushang {
font-size: 0.25rem;
margin-left: 2%;
color: #828282;
position: relative;
left: 0;
top: -0.01rem;
}
.icon-paixujiantouxia {
left: -.43rem;
top: 0.02rem;
}
input {
border: none;
appearance: none;
-moz-appearance: none;
outline: none;
-webkit-appearance: none;
}
</style>
<body>
<!--lists-->
<div class="read-role">
<div class="sort desc">排序1数字<i class="iconfont icon-paixujiantoushang"></i> <i
class="iconfont icon-paixujiantouxia"></i></div>
<div class="sort01 desc01">排序2百分比<i class="iconfont icon-paixujiantoushang"></i> <i
class="iconfont icon-paixujiantouxia"></i></div>
</div>
<div class="container">
<div class="part">
<span>数据<span class="blue"><input readonly="readonly" class="read-num" type='text' value='15'/></span> 次</span>
<span>百分比<span class="blue"> <input readonly="readonly" class="read-rate" type='text' value='42.6%'/></span> </span>
</div>
<div class="part">
<span>数据<span class="blue"><input class="read-num" type='text' value='100'/></span> 次</span>
<span>百分比<span class="blue"> <input class="read-rate" type='text' value='4%'/></span> </span>
</div>
<div class="part">
<span>数据<span class="blue"><input readonly="readonly" class="read-num" type='text' value='1'/></span> 次</span>
<span>百分比<span class="blue"> <input readonly="readonly" class="read-rate" type='text' value='30%'/></span> </span>
</div>
</div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
var up,down, // 排序1的上下箭头图标
up01,down01;// 排序2的上下箭头图标
// 排序1之数字大小排序
$(".sort").click(function () {
var _this = $(this);
up = _this.find(".icon-paixujiantoushang");
down = _this.find(".icon-paixujiantouxia");
if (_this.hasClass("desc")) {
sortByInput(desc);
_this.removeClass("desc").addClass("asc");
down.addClass("sortcolor");
up.removeClass("sortcolor");
up01.removeClass("sortcolor");
down01.removeClass("sortcolor");
} else {
up.addClass("sortcolor");
down.removeClass("sortcolor");
up01.removeClass("sortcolor");
down01.removeClass("sortcolor");
sortByInput(asc);
_this.addClass("desc").removeClass("asc");
}
});
var asc = function (a, b) {
var a = $(a).find('.read-num').val();
var b = $(b).find('.read-num').val();
return a - b;
};
var desc = function (a, b) {
var a = $(a).find('.read-num').val();
var b = $(b).find('.read-num').val();
return b - a;
};
var sortByInput = function (sortBy) {
var sortEle = $('.container>.part').sort(sortBy);
$('.container').empty().append(sortEle);
};
// 排序2之百分比排序
$(".sort01").click(function () {
var _this = $(this);
up01 = _this.find(".icon-paixujiantoushang");
down01 = _this.find(".icon-paixujiantouxia");
if (_this.hasClass("desc01")) {
down01.addClass("sortcolor");
up01.removeClass("sortcolor");
down.removeClass("sortcolor");
up.removeClass("sortcolor");
sortByInput(desc01);
_this.removeClass("desc01").addClass("asc01");
} else {
up01.addClass("sortcolor");
down01.removeClass("sortcolor");
down.removeClass("sortcolor");
up.removeClass("sortcolor");
sortByInput(asc01);
_this.addClass("desc01").removeClass("asc01");
}
});
var asc01 = function (a, b) {
var m = $(a).find('.read-rate').val();
var n = $(b).find('.read-rate').val();
var a = m.replace(/%/g, '');
var b = n.replace(/%/g, '');
return a - b;
};
var desc01 = function (a, b) {
var m = $(a).find('.read-rate').val();
var n = $(b).find('.read-rate').val();
var a = m.replace(/%/g, '');
var b = n.replace(/%/g, '');
return b - a;
};
var html = document.documentElement;
var hWidth = html.getBoundingClientRect().width;
html.style.fontSize = hWidth / 7.5 + 'px';
</script>
</html>