前端三大件速成 06 小练习:模态对话框、正反选、二级联动

一、小练习:模态对话框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .content{
            height: 1800px;
            background-color: white;
        }

        .shade{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: gray;
            opacity: 0.7;
        }

        .model{
            width: 200px;
            height: 200px;
            background-color: bisque;
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -100px;
            margin-left: -100px;
        }

        .hide{
            display: none;
        }
    </style>
</head>
<body>

<div class="content">
    <button onclick="show()">show</button><br>
    hello world hello world <br>
    hello world hello world <br>
    hello world hello world <br>
    hello world hello world <br>
</div>

<div class="shade hide"></div>

<div class="model hide">
    <button onclick="cancel()">cancel</button>
</div>

<script>
    function show(){
        var ele_shade=document.getElementsByClassName("shade")[0];
        var ele_model=document.getElementsByClassName("model")[0];

        ele_model.classList.remove("hide");
        ele_shade.classList.remove("hide");
    }

    function cancel(){
        var ele_shade=document.getElementsByClassName("shade")[0];
        var ele_model=document.getElementsByClassName("model")[0];

        ele_shade.classList.add("hide")
        ele_model.classList.add("hide")
    }

</script>

</body>
</html>

二、小练习:正反选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<button onclick="selectAll()">全选</button>
<button onclick="cancel()">取消</button>
<button onclick="reverse()">反选</button>
<hr>

<table>
    <tr>
        <td><input type="checkbox"></td>
        <td>111</td>
        <td>111</td>
        <td>111</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>222</td>
        <td>222</td>
        <td>222</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>333</td>
        <td>333</td>
        <td>333</td>
    </tr>
</table>

<script>

    function selectAll(){
        var inputs = document.getElementsByTagName("input");

        for (var i=0;i<inputs.length;i++){
            var input=inputs[i];
            input.checked=true;
        }
    }

    function cancel(){
        var inputs = document.getElementsByTagName("input");

        for (var i=0;i<inputs.length;i++){
            var input=inputs[i];
            input.checked=false;
        }
    }

    function reverse(){
        var inputs = document.getElementsByTagName("input");
        var input;

        for (var i=0;i<inputs.length;i++){
            input = inputs[i];
            input.checked = !input.checked;
        }
    }

</script>

</body>
</html>

三、二级联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<select id="provinces">
    <option value="">请选择省份</option>
</select>

<select id="citys">
    <option value="">请选择城市</option>
</select>

<script>
    data={"河北省":["石家庄","廊坊"],"山西":["晋城","大同"],"陕西":["西安","延安"]};
    var pro_ele=document.getElementById("provinces");
    var city_ele=document.getElementById("citys");

    // 添加省名
    for (var i in data){
        var ele=document.createElement("option");
        ele.innerHTML=i;
        pro_ele.appendChild(ele);
    }

    pro_ele.onchange=function (){
        console.log(this.selectedIndex);
        console.log(this.options[this.selectedIndex])

        var citys=data[this.options[this.selectedIndex].innerHTML];
        //补充知识:data["河北省"]与data.河北省等同

        city_ele.options.length=1;

        for(var i=0;i<citys.length;i++){
            var ele=document.createElement("option");
            ele.innerHTML=citys[i];
            city_ele.appendChild(ele);
        }
    }

</script>

</body>
</html>

相关推荐

  1. [程序开发] 对话框模块封装

    2024-06-12 23:14:02       37 阅读
  2. QT对话框和非对话框

    2024-06-12 23:14:02       56 阅读
  3. uniapp picker组实现二级联动

    2024-06-12 23:14:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 23:14:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 23:14:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 23:14:02       87 阅读
  4. Python语言-面向对象

    2024-06-12 23:14:02       96 阅读

热门阅读

  1. dependencies?devDependencies?peerDependencies

    2024-06-12 23:14:02       32 阅读
  2. 36、matlab矩阵特征值、特征向量和奇异值

    2024-06-12 23:14:02       30 阅读
  3. C++中的工厂方法模式

    2024-06-12 23:14:02       31 阅读
  4. Qt 焦点系统关键点总结

    2024-06-12 23:14:02       27 阅读