zoukankan      html  css  js  c++  java
  • JavaScript 的一些应用场景分析

    在之前的 JavaScript 简介中,对于JavaScript 应该有一个大致的了解了,那么接下来,我们来看看 JavaScript 在网页中的控制行为是怎样一回事!!

    1. 关于点击调整字体(Font)的一些属性:

    效果图:

    实现代码:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>新闻广告</title>
    <style type="text/css">
    <!-- 伪元素选择器 -->
    a:link,a:visited {
        color:#FF9900;
        text-decoration:none;
        font-size:15px;
        }
        
    a:hover {
        color:#0099FF;
        }
        
    .middle {
        border:#0099FF 1px solid;
        font-size:16px;
        width:400px;
        }
        
    /*
    预先定一些选择器
    */
    .max {
        border:#0099FF 1px solid;
        font-size:20px;
        color:#FF0000;
        background-color:#CCFFFF;
        width:400px;
        }
        
    .min {
        border:#0099FF 1px solid;
        font-size:12px;
        color:#0000FF;
        background-color:#FFFFFF;
        width:400px;
        }
    
    </style>
    
    <script type="text/javascript">
        function resize(size){
            //获取div
            var oDiv = document.getElementById("newstext");
            //把参数赋值给div的class属性
            oDiv.className = size;
        }
    </script>
    </head>
    
    <body>
        <h2>这是一个大新闻.</h2>
        <a href="javascript:void(0)" onclick="resize('min')">小字体</a> 
        <a href="javascript:void(0)" onclick="resize('middle')">中字体</a> 
        <a href="javascript:void(0)" onclick="resize('max')">大字体</a> 
        <hr />
        
        <div id="newstext" class="middle">
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        演示接口.很多内容.怎么办呢?等等<br />
        </div>
    
    </body>
    </html>

    2. 关于 Checkbox 的一些应用:

    效果图:

    实现代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>全选反选问题</title>
    <script>
        function checkAll(obj){
            //让所有item的状态和全选保持一致
            var items = document.getElementsByName("item");
            for(var i=0; i<items.length; i++){
                items[i].checked = obj.checked;
            }
        }
        
        window.onload = function(){    //当页面加载完成后获取所有的item
            //获取所有的item, 给每一个item添加点击事件: 判断所有的item是否被选中, 如果是, 全选应该被选中, 如果不是, 全选应该取消!
            var items = document.getElementsByName("item");
            for(var i=0; i<items.length; i++){
                items[i].onclick = function(){
                    var flag = true;
                    for(var j=0; j<items.length; j++){
                        if(!items[j].checked){
                            flag = false;
                            break;
                        }
                    }
                    document.getElementById("all1").checked = flag;
    
                    /*if(flag){
                        document.getElementById("all1").checked = true;
                    }else{
                        document.getElementById("all1").checked = false;
                    }*/
                }
            }
            
        }
    
    
        function check(){
            //获取所有的item, 将每一个item的状态取反.
            var items = document.getElementsByName("item");
            for(var i=0; i<items.length; i++){
                items[i].checked = !items[i].checked;
            }
    
            //==============================
            //判断所有的item是否被选中, 如果是, 全选应该被选中, 如果不是, 全选应该取消!
            var flag = true;
            for(var j=0; j<items.length; j++){
                if(!items[j].checked){
                    flag = false;
                    break;
                }
            }
            document.getElementById("all1").checked = flag;
        }
    
        function getSum(){
            //获取所有的item, 循环遍历, 依次判断每一个item是否被选中, 如果是累加value
            var items = document.getElementsByName("item");
            var sum = 0;
            for(var i=0; i<items.length;i++){
                if(items[i].checked){
                    sum +=     parseFloat(items[i].value);    
                }
            }
            document.getElementById("sumId").innerHTML = "总金额为: "+sum;
        }
    
        
    
        
        
    </script>
    </head>
    
    <body>
    <div>商品列表</div>
    <input type="checkbox" name="item" value="3000" />笔记本3000元<br />
    <input type="checkbox" name="item" value="2500"/>HTC手机2500<br />
    <input type="checkbox" name="item" value="8000" />苹果电脑8000<br />
    <input type="checkbox" name="item" value="1500" />IPAD1500<br />
    <input type="checkbox" name="item" value="400" />玩具汽车400<br />
    
    <input type="checkbox" id="all1" name="all" onclick="checkAll(this)"/>全选<br />
    <input type="checkbox" id="all2" name="all" onclick="check()"/>反选<br />
    
    <input type="button" value="总金额" onclick="getSum()" /><span id="sumId"></span>
    </body>
    </html>

    3.关于 Radiobutton 的一些使用:

    效果图:

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>单选按钮</title>
        <style type="text/css">
            #all div{
                display:none;
            }
        </style>
        <script type="text/javaScript">
            function show(obj){
                var oDiv = document.getElementById("result"+obj.value);
                var aDiv = document.getElementById("all").getElementsByTagName("div");
                for(var i=0; i<aDiv.length; i++){
                    aDiv[i].style.display = "none";
                }
                oDiv.style.display = "block";
            }
        </script>
    </head>
    
    <body>
        <div>
            <h3>测试你的性格:</h3>
            <div>请选择下列一种水果:</div>
            <input type="radio" name="fruit" value="1" onclick="show(this)" />苹果<br />
            <input type="radio" name="fruit" value="2"  onclick="show(this)" />西瓜<br />
            <input type="radio" name="fruit" value="3"  onclick="show(this)"/>葡萄<br />
            <input type="radio" name="fruit" value="4"  onclick="show(this)"/>芒果<br />
            
            <div id="all">
                <div id="result1">
                    您的性格,很羞涩.
                </div>
                <div id="result2">
                    您的性格,很开朗.
                </div>
                <div id="result3">
                    您的性格,很内向.
                </div>
                <div id="result4">
                    您的性格,很醇香.
                </div>
            </div>
        </div>
    </body>
    </html>

    4. 关于 creatTable 的一些使用:

    效果图:

    实现代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>创建表格</title>
    <!-- 定义一些样式,将来给表格用 -->
    <style type="text/css">
    table{
        border:#0099FF 1px solid;
        width:600px;
        border-collapse:collapse;
    }
        
    table td{
        border:#0099FF 1px solid;
        padding:10px 20px 3px 1px; 
    }
    </style>
    <script type="text/javascript">
        //创建单行单列的表格
        function createTable(){
            //创建表格元素
            var table = document.createElement("table");
            //创建表格行元素
            var tr = document.createElement("tr");
            //创建单元格元素
            var td = document.createElement("td");
            td.innerHTML = "我是td, 我最牛~!"; //给单元格设置文本
            tr.appendChild(td);    //将单元格添加到表格行上
            table.appendChild(tr); //将表格行添加到表格上
            //将创建好的整个table挂载到div上
            document.getElementById("tab").appendChild(table);
        }
    
        //创建5行6列的表格
        function createTable2(){
            //创建table标签
            var table = document.createElement("table");
            for(var r = 0;r<5;r++){ //外层循环控制行数
                var tr = document.createElement("tr");
                //创建table标签
                for(var c = 0;c<6;c++){ //内层循环控制列(单元格)数
                    var td = document.createElement("td");
                    td.innerHTML = (r+1)+""+(c+1)+"";
                    //将td挂载到tr上
                    tr.appendChild(td)
                }
                //将tr挂载到table上
                table.appendChild(tr);
            }
            //将创建好的整个table挂载到div上
            document.getElementById("tab").appendChild(table);
        }
    
        //创建指定行和列的表格
        function createTable3(){
            //获取用户输入的行数
            var row = document.getElementById("row").value;
            //获取用户输入的列数
            var col = document.getElementById("col").value;
            
            var table = document.createElement("table");
            for(var r = 0;r<row;r++){
                var tr = document.createElement("tr");
                for(var c = 0;c<col;c++){
                    var td = document.createElement("td");
                    td.innerHTML = (r+1)+""+(c+1)+"";
                    tr.appendChild(td)
                }
                table.appendChild(tr);
            }
            //将创建好的整个table挂载到div上
            document.getElementById("tab").appendChild(table);
        }
    </script>
    </head>
    <body>
        <input type="button" value="创建表格" onclick="createTable()" /><br />
    
        <input type="button" value="创建表格(5行6列)" onclick="createTable2()" /><br />
    
        行数:<input type="text" name="row" id="row"/><br />
        列数:<input type="text" name="col" id="col"/><br />
        <input type="button" name="createButton" value="创建表格(行列用户输入)" onclick="createTable3()" />
        <div id="tab">
                
        </div>
    </body>
    </html>

    5. 关于 Table 的使用(实现隔行变色):

    效果图:

    实现代码:

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>表格的操作</title>
        <style type="text/css">
            table {
                border:#0099FF 1px solid;
                width:500px;
                border-collapse:collapse;
            }
            table th, table td {
                border:#0099FF 1px solid;
                padding:10px 0px 10px 10px;
            }
            table th {
                background-color:#00CCFF;
            }
    
            .one {
                background-color:#CCFF66;
            }
            .two {
                background-color:#897af1;
            }
            .over {
                background-color:#FF0000;
            }
            div{
                text-align: center;
                padding:20px;
                color:red;
            }
        </style>
        
        <script type="text/javascript">
            window.onload = function(){
                alert("效果1: 隔行变色");
                //获取所有的tr
                var aTr = document.getElementsByTagName("tr");
                //循环遍历
                for(var i=1; i<aTr.length; i++){
                    if(i%2 == 0){//奇(偶)数行,设置为one
                        aTr[i].className = "one";
                    }else{//偶(奇)数行,设置为one
                        aTr[i].className = "two";
                    }
                    //------------------------------
                    var classNameTemp;
                    //光标移入元素时
                    aTr[i].onmouseover = function(){
                        classNameTemp = this.className;//记住改变之前的class
                        this.className = "over";
                    }
                    //光标移出元素时
                    aTr[i].onmouseout = function(){
                        this.className = classNameTemp;
                    }
                }
            }
        </script>
    </head>
    <body>
        <table align="center">
            <tr>
                <th>电影名称</th>
                <th>电影介绍</th>
                <th>主演名单</th>
            </tr>
            <tr>
                <td>变形金刚</td>
                <td>很不错的电影</td>
                <td>机器人</td>
            </tr>
            <tr>
                <td>唐伯虎点秋香</td>
                <td>非常好的电影</td>
                <td>周星驰,巩俐</td>
            </tr>
            <tr>
                <td>东邪西毒</td>
                <td>群星云集的电影</td>
                <td>张国荣,梁朝伟...</td>
            </tr>
            <tr>
                <td>少林足球</td>
                <td>最厉害的足球电影</td>
                <td>周星驰,赵薇</td>
            </tr>
            <tr>
                <td>赌神</td>
                <td>小马哥演绎赌神</td>
                <td>周润发</td>
            </tr>
            <tr>
                <td>大话西游</td>
                <td>超级搞笑的电影</td>
                <td>周星驰</td>
            </tr>
            <tr>
                <td>疯狂的石头</td>
                <td>一部让人大笑不止的电影</td>
                <td>黄渤</td>
            </tr>
        </table>
        <div>(效果2: 试试将鼠标移入到表格行内...)</div>
    </body>
    </html>

    6. 表格按需要排序:

    效果图:

    实现代码:

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>表格中的数据排序</title>
        <style type="text/css">
            table {
                border:#0099FF 1px solid;
                border-collapse:collapse;
                width:600px;
                font-family: "微软雅黑";
                margin-top: 50px;
            }
            table td{
                border:#0099FF 1px solid;
                text-align:center;
            }
            #age:link,#age.visited {
                color:#000000;
            }
            div{
                text-align: center;
                padding:20px;
                color:red;
            }
        </style>
        <script type="text/javaScript">
            function sort(){
                //冒泡排序
                var aTr = document.getElementsByTagName("tr");//获取所有的tr
                //循环遍历所有的tr(第一行为表头不算, i和j从1开始)
                for(var i=1; i<aTr.length-1; i++){
                    for(var j=1; j<aTr.length-i; j++){
                        //获取第j行的年龄
                        var age1 = parseInt(aTr[j].getElementsByTagName("td")[1].innerHTML);
                        //获取第j+1行的年龄
                        var age2 = parseInt(aTr[j+1].getElementsByTagName("td")[1].innerHTML);
                        //比较年龄
                        if(age1>age2){//升序排序
                            /*var temp = aTr[j];
                            aTr[j] = aTr[j+1];
                            aTr[j+1] = temp;*/ //这种方式是错的!!!
                            //1.方式一
                            /*
                                var cloneAtr1 = aTr[j].cloneNode(true);
                                var cloneAtr2 = aTr[j+1].cloneNode(true);
                                aTr[j].parentNode.replaceChild(cloneAtr1 , aTr[j+1]);
                                aTr[j].parentNode.replaceChild(cloneAtr2 , aTr[j]);
                            */
                            //2.方式二
                            var temp = aTr[j].innerHTML;
                            aTr[j].innerHTML = aTr[j+1].innerHTML;
                            aTr[j+1].innerHTML = temp;
                        }
                    }
                }
            }
        </script>
    </head>
    <body>
        <table align="center" cellpadding="10">
            <tr>
                <th>姓名</th>
                <th onclick="sort()" style="cursor:pointer;">年龄</th>
                <th>地址</th>
            </tr>
            <tr>
                <td>张三</td>
                <td>25</td>
                <td>北京</td>
            </tr>
            <tr>
                <td>李四</td>
                <td>23</td>
                <td>天津</td>
            </tr>
            <tr>
                <td>王五</td>
                <td>28</td>
                <td>上海</td>
            </tr>
            <tr>
                <td>赵六</td>
                <td>26</td>
                <td>南京</td>
            </tr>
            <tr>
                <td>周七</td>
                <td>22</td>
                <td>上海</td>
            </tr>
        </table>
        <div>(效果: 试试点击年龄...表格行会按照年龄大小进行排列)</div>
    </body>
    </html>

    7. 一个综合:

    效果图:

    <!DOCTYPE HTML>
    <html>
        <head>
            <title>表单页面</title>
            <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
            <script type="text/javascript">
                //表单被提交时会触发onsubmit事件, 驱动该方法执行
                function checkForm(){
                    var flag = true;
                    //非空校验
                    flag = checkNull("username", "用户名不能为空") && flag;
                    flag = checkNull("password", "密码不能为空") && flag;
                    flag = checkNull("password2", "确认密码不能为空") && flag;
                    flag = checkNull("nickname", "昵称不能为空") && flag;
                    flag = checkNull("email", "邮箱不能为空") && flag;
                    flag = checkNull("img", "头像不能为空") && flag;
                    flag = checkNull("valistr", "验证码不能为空") && flag;
                    flag = checkGenderAndLike("gender", "性别不能为空") && flag;
                    flag = checkGenderAndLike("like", "爱好不能为空") && flag;
                    flag = checkPassword("password", "两次密码不一致") && flag;
                    flag = checkEmail("email", "邮箱格式不正确") && flag;
                    
                    return flag;
                }
    
                //检查邮箱格式
                function checkEmail(name, msg){
                    var email = document.getElementsByName(name)[0].value;
                    setMsg(name, "");
                    if(email == ""){
                        setMsg(name, "邮箱不能为空");
                    }else{
                        var reg = /^w+@w+(.w+)+$/;
                        
                        if(!reg.test(email)){
                            setMsg(name, msg);
                            return false;
                        }
                    }
                    return true;
                }
    
                //检查两次密码是否一致
                function checkPassword(name, msg){
                    var psw = document.getElementsByName(name)[0].value;
                    var psw2 = document.getElementsByName(name+"2")[0].value;
                    setMsg(name+"2", "");
                    if(psw2 == ""){
                        setMsg(name+"2", "确认密码不能为空");
                        return false;
                    }
                    if(psw != "" && psw2 != "" && psw != psw2){
                        setMsg(name+"2", msg);
                        return false;
                    }
                    return true;
                }
    
                //检查性别和爱好
                function checkGenderAndLike(name, msg){
                    var flag = false;
                    //获取所有的选框, 遍历, 只要有一个被选中, 就校验通过
                    var objs = document.getElementsByName(name);
                    for(var i=0; i<objs.length; i++){
                        if(objs[i].checked){
                            flag = true;
                        }
                    }
                    setMsg(name, "");
                    if(!flag){
                        setMsg(name, msg);
                        return false;
                    }
                    return true;
                    
                }    
    
                //当输入框失去焦点时
                function onblurTA(obj){
                    if(obj.value == ""){
                        obj.value = "请输入描述信息~!";
                    }
                }
                //当输入框获得焦点时
                function onfocusTA(obj){
                    if(obj.value == "请输入描述信息~!"){
                        obj.value = "";
                    }
                }
    
                //检查指定name的输入框是否为空, 如果为空给出提示消息
                function checkNull(name, msg){
                    var value = document.getElementsByName(name)[0].value;
                    setMsg(name, "" );
                    if(value == ""){
                        //alert(msg);
                        setMsg(name, msg);
                        return false;
                    }
                }
    
                //设置提示消息的方法
                function setMsg(name, msg){
                    document.getElementById(name+"_msg").innerHTML = "<font style='color:red;font-size: 12px;'>"+ msg +"</font>";
                }
            </script>
        </head>
        <body>
            <form action="http://localhost:8080" method="POST" onsubmit="return checkForm()" >
                <table border="1px" align="center" cellpadding="10px" cellspacing="0px" borderColor="red" bgcolor="pink">
                    <caption><font color="red" size="6">注册表单</font></caption>
                    <input type="hidden" name="id" value="9527"/>
                    <tr>
                        <td>用户名:</td>
                        <td>
                            <input type="text" name="username" onblur="checkNull('username', '用户名不能为空')"/>
                            <span id="username_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>密码:</td>
                        <td>
                            <input type="password" name="password"  onblur="checkNull('password', '密码不能为空')"/>
                            <span id="password_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>确认密码:</td>
                        <td>
                            <input type="password" name="password2"  onblur="checkPassword('password', '两次密码不一致')"/>
                            <span id="password2_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>性别:</td>
                        <td>
                            <input type="radio" name="gender" value="男"/><input type="radio" name="gender" value="女"/><span id="gender_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>昵称:</td>
                        <td>
                            <input type="text" name="nickname"  onblur="checkNull('nickname', '昵称不能为空')"/>
                            <span id="nickname_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>邮箱:</td>
                        <td>
                            <input type="text" name="email"  onblur="checkEmail('email', '邮箱格式不正确')"/>
                            <span id="email_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>爱好:</td>
                        <td>
                            <input type="checkbox" name="like" value="lq"/>篮球
                            <input type="checkbox" name="like" value="zq"/>足球
                            <input type="checkbox" name="like" value="qq"/>铅球
                            <input type="checkbox" name="like" value="blq"/>玻璃球
                            <span id="like_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>客户类型:</td>
                        <td>
                            <select name="type">
                                <option value="pm">平民</option>
                                <option value="sxdy">少先队员</option>
                                <option value="gqty">共青团员</option>
                                <option value="ybdy">预备党员</option>
                                <option value="zsdy">正式党员</option>
                            </select>
                            
                        </td>
                    </tr>
                    <tr>
                        <td>头像:</td>
                        <td>
                            <input type="file" name="img" />
                            <span id="img_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>描述信息:</td>
                        <td>
                            <textarea id="desc" rows="5" cols="45" name="desc" onblur="onblurTA(this)" onfocus="onfocusTA(this)">请输入描述信息~!</textarea>
                            <span id="desc_msg" ></span>
                        </td>
                    </tr>
                    <tr>
                        <td>验证码:</td>
                        <td>
                            <input type="text" name="valistr"  onblur="checkNull('valistr', '验证码不能为空')"/>
                            <img src="1.jpg" width="100px" height="20px"/>
                            <span id="valistr_msg" ></span>
                        </td>
    
                    </tr>
                    <tr>
                        <td colspan="2" align="right">
                            <input type="submit" value="提 交"/>
                            <input type="reset" value="重 置"/>
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>
  • 相关阅读:
    React-精华版
    国内优秀npm镜像推荐及使用
    GitHub 配置指南
    Nodejs之WebSocket
    js验证连续两位数字递增或递减和连续三位数字相同
    JS魔法堂:LINK元素深入详解
    phpstorm将多个int数字拼接成字符串
    php中使用curl来post一段json数据
    MySQL索引使用:字段为varchar类型时,条件要使用''包起来
    MySQL中enum类型数据,要传入字符串
  • 原文地址:https://www.cnblogs.com/tangdiao/p/9481681.html
Copyright © 2011-2022 走看看