javascript对html多选框进行动态排序

这是一个HTML页面,实现了动态排序的功能。用户可以点击水果名称旁边的框进行排序,选中的项会显示数字并按顺序排列。当用户点击提交按钮时,如果没有选择任何项,会提示至少选择一项。如果选择了项,则会输出排序后的结果。该代码主要涉及前端交互和事件处理。
摘要由CSDN通过智能技术生成

对几个选项动态排序

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>开发</title>

    <!-- <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> -->

</head>

<style>

    .checkbox_span {

        min-width: 20px;

        height: 20px;

        display: inline-block;

        vertical-align: middle;

        margin: 0 10px;

        background: #fff;

        border: 1px solid #a6a6a6;

        border-radius: 2px;

    }

    .checkbox_span_xuan {

        background: #2068FF !important;

        border: 1px solid #2068FF !important;

        min-width: 20px;

        height: 20px;

        line-height: 20px;

        border-radius: 2px;

        color: #fff;

        text-align: center;

    }

</style>



<body>

    <div>

        <div class="checkbox_info">

            <span id="pai_kuan_01" class="checkbox_span" onclick="selected_sorting(this.id);"></span>

            <span id="pai_text_01">香蕉</span>

        </div>

        <div class="checkbox_info">

            <span id="pai_kuan_02" class="checkbox_span" onclick="selected_sorting(this.id);"></span>

            <span id="pai_text_02">苹果</span>

        </div>

        <div class="checkbox_info">

            <span id="pai_kuan_03" class="checkbox_span" onclick="selected_sorting(this.id);"></span>

            <span id="pai_text_03">菠萝</span>

        </div>

        <div class="checkbox_info">

            <span id="pai_kuan_04" class="checkbox_span" onclick="selected_sorting(this.id);"></span>

            <span id="pai_text_04">草莓</span>

        </div>

    </div>

    <p><button onclick="tijiao();">提交</button></p>

</body>



</html>

<script>

    // 提交

    function tijiao() {

        var num = document.querySelectorAll("div.checkbox_info");

        var num_tmp = 0;

        var sorting_problem = '';

        for (var i = 1; i <= num.length; i++) {

            var pai_id = 'pai_kuan_0' + i;

            var if_value = document.getElementById(pai_id).innerHTML;

            // console.log(if_value);

            // 判断是否为空

            if (if_value) {

                // 有值,说明选中了

                var text_id = 'pai_text_0' + i;

                var if_text = document.getElementById(text_id).innerHTML;

                var last_tmp = if_value + '.' + if_text + ',';

                sorting_problem += last_tmp;

            }

        }

        if (sorting_problem == null || sorting_problem == "" || sorting_problem == undefined) {

            alert('至少选择一项');

            var href_id = "#sorting_problem";

            location.href = href_id;

            return false;

        }

        console.log(sorting_problem);

    }

    // 排序特效

    function selected_sorting(obj) {

        // console.log(obj);

        var num = document.querySelectorAll("div.checkbox_info");

        // 判断前面有多少个有值的

        var num_tmp = 0;

        for (var i = 1; i <= num.length; i++) {

            var pai_id = 'pai_kuan_0' + i;

            var if_value = document.getElementById(pai_id).innerHTML;

            if (if_value) {

                // console.log('循环每个选项'+ifvalue);

                num_tmp += 1;

            }

        }

        // console.log(num_tmp);

        //判断当前点击是否有值

        var obj_value = document.getElementById(obj).innerHTML;

        if (obj_value) {

            // console.log('当前点击有值');

            document.getElementById(obj).innerHTML = '';

            document.getElementById(obj).classList.remove("checkbox_span_xuan");

            for (var i = 1; i <= num.length; i++) {

                var pai_id = 'pai_kuan_0' + i;

                var if_value = document.getElementById(pai_id).innerHTML;

                // id值大于点击选项的全部-1

                if (if_value !== obj_value && if_value > obj_value) {

                    var auto_value = if_value - 1;

                    document.getElementById(pai_id).innerHTML = auto_value;

                }

            }

        } else {

            //没有值

            // console.log('当前点击没有值');

            var new_num_tmp = num_tmp + 1;

            document.getElementById(obj).innerHTML = new_num_tmp;

            document.getElementById(obj).classList.add("checkbox_span_xuan");

        }

    }

</script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值