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>
  • 相关阅读:
    my first android test
    VVVVVVVVVV
    my first android test
    my first android test
    my first android test
    ini文件
    ZZZZ
    Standard Exception Classes in Python 1.5
    Python Module of the Week Python Module of the Week
    my first android test
  • 原文地址:https://www.cnblogs.com/tangdiao/p/9481681.html
Copyright © 2011-2022 走看看