JQ- 依据input value值给div 进行排序

原 :
这里写图片描述

升序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>&nbsp;&nbsp;
            <span>百分比<span class="blue">&nbsp;&nbsp;<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>&nbsp;&nbsp;
            <span>百分比<span class="blue">&nbsp;&nbsp;<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>&nbsp;&nbsp;
            <span>百分比<span class="blue">&nbsp;&nbsp;<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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值