js02

来源:https://www.cnblogs.com/limuma/archive/2018/02/20/8454833.html
-Advertisement-
Play Games

一、<thead></thead>,<tbody></tbody>:為了使表頭和表格內容分開設置樣式 1、tbody裡邊有一個rows.length,獲取行數的知識點 2、<thead> <tr> <th></th> </tr> </thead> <tbody>只需將上述的th換為td即可 以一個案 ...


一、<thead></thead>,<tbody></tbody>:為了使表頭和表格內容分開設置樣式

1、tbody裡邊有一個rows.length,獲取行數的知識點

2、<thead>

  <tr>

    <th></th>

  </tr>

</thead>

<tbody>只需將上述的th換為td即可

以一個案例說明如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>表格隔行換色</title>
        <script>
            window.onload = function(){
                //1.獲取表格
                var tblEle = document.getElementById("tbl");
                //2.獲取表格中tbody裡面的行數(長度)
                var len = tblEle.tBodies[0].rows.length;
                //這裡的.tBodies[0]說明可以有多個tbody,這裡只取第一個
                //3.對tbody裡面的行進行遍歷
                for(var i=0;i<len;i++){
                    if(i%2==0){
                        //4.對偶數行設置背景顏色
                        tblEle.tBodies[0].rows[i].style.backgroundColor="pink";
                    }else{
                        //5.對奇數行設置背景顏色
                        tblEle.tBodies[0].rows[i].style.backgroundColor="gold";
                    }
                }
            }
        </script>

    </head>
    <body>
        <table border="1" width="500" height="50" align="center" id="tbl">
            <thead>
                <tr>
                    <th>編號</th>
                    <th>姓名</th>
                    <th>年齡</th>
                </tr>
            </thead>
            <tbody>
                <tr >
                    <td>1</td>
                    <td>張三</td>
                    <td>22</td>
                </tr>
                <tr >
                    <td>2</td>
                    <td>李四</td>
                    <td>25</td>
                </tr>
                <tr >
                    <td>3</td>
                    <td>王五</td>
                    <td>27</td>
                </tr>
                <tr >
                    <td>4</td>
                    <td>趙六</td>
                    <td>29</td>
                </tr>
                <tr >
                    <td>5</td>
                    <td>田七</td>
                    <td>30</td>
                </tr>
                <tr >
                    <td>6</td>
                    <td>汾九</td>
                    <td>20</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>        

二、js常見的內置對象

javascript內置對象
1、Array對象
  數組的創建:
 
  數組的特點:長度可變!數組的長度=最大角標+1
2、Boolean對象
  對象創建:
 
  如果value 不寫,那麼預設創建的結果為false
3、Date對象
  getTime();返回 1970 年 1 月 1 日至今的毫秒數。解決瀏覽器緩存問題。
4、Math和number對象   與java裡面的基本一致。 5、String對象   match():找到一個或多個正則表達式的匹配。   substr():從起始索引號提取字元串中指定數目的字元。   substring():提取字元串中兩個指定的索引號之間的字元。   例子:   
<script>    var str = "-a-b-c-d-e-f-";    var str1 = str.substr(2,4);//-b-c   //alert(str1);   var str2 = str.substring(2,4);//-b    alert(str2);   </script> 6、 RegExp對象:正則表達式對象方法:test;比如:正則.test(字元串);檢索字元串中指定的值。返回 true 或 false。

三、js全局函數(可直接使用,不同於內置對象:使用方法之前要先創建對象)

  以代碼來介紹幾個全局函數:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>全局函數</title>
        <script>
            var str = "張三";
            alert(encodeURI(str));//%E5%BC%A0%E4%B8%89
            alert(encodeURIComponent(str));//%E5%BC%A0%E4%B8%89
            
            alert(decodeURI(encodeURI(str)));//張三
            alert(decodeURIComponent(encodeURIComponent(str)));//張三
            
            var str1 = "http://www.itheima.cn";
            alert(encodeURI(str1));//http://www.itheima.cn
            alert(encodeURIComponent(str1));//http%3A%2F%2Fwww.itheima.cn
            
            alert(decodeURI(encodeURI(str1)));//http://www.itheima.cn
            alert(decodeURIComponent(encodeURIComponent(str1)));//http://www.itheima.cn
            
            var str2 = "alert('abc')";
            alert(str2);
            eval(str2);
            
        </script>
    </head>
    <body>
    </body>
</html>

四、js常見案例

1、案例一:使用js完成省市二級聯動的效果

  首先,技術分析:

    確定事件(onchange)
    使用一個二維數組來存儲省份和城市(二維數組的創建?)
    獲取用戶選擇的省份(使用方法傳參的方式:this.value)
    遍曆數組(獲取省份與用戶選擇的省份比較,如果相同了,繼續遍歷該省份下    所有的城市)
    創建文本節點和元素節點併進行添加操作
    createTextNode()
    createElement()
    appendChild()

  其次,步驟分析:

    第一步:確定事件(onchange)併為其綁定一個函數
    第二步:創建一個二維數組用於存儲省份和城市
    第三步:獲取用戶選擇的省份
    第四步:遍歷二維數組中的省份
    第五步:將遍歷的省份與用戶選擇的省份比較
    第六步:如果相同,遍歷該省份下所有的城市
    第七步:創建城市文本節點
    第八步:創建option元素節點
    第九步:將城市文本節點添加到option元素節點中去
    第十步:獲取第二個下拉列表,並將option元素節點添加進去
    第十一步:每次操作前清空第二個下拉列表的option內容。

  具體代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>註冊頁面重新佈局</title>
        <style type="text/css">
            .top{
                border: 1px solid red;
                width: 32.9%;
                height: 50px;
                float: left;
            }

            #clear{
                clear: both;
            }
            #menu{
                border: 1px solid blue;
                width: 99%;
                height: 40px;
                background-color: black;
            }
            #menu ul li{
                display: inline;
                color: white;
                font-size: 19px;
            }
            #bottom{
                text-align: center;
            }
            #contanier{
                border: 1px solid red;
                width: 99%;
                height: 600px;
                background: url(../img/regist_bg.jpg);
                position: relative;
            }
            #content{
                border: 5px solid gray;
                width: 50%;
                height: 60%;
                position: absolute;
                top: 100px;
                left: 300px;
                background-color: white;
                padding-top: 50px;
            }

        </style>
        
        <script>
            //1.創建一個二維數組用於存儲省份和城市
            var cities = new Array(3);
            cities[0] = new Array("武漢市","黃岡市","襄陽市","荊州市");
            cities[1] = new Array("長沙市","郴州市","株洲市","岳陽市");
            cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市");
            cities[3] = new Array("鄭州市","洛陽市","開封市","安陽市");
            
            function changeCity(val){
                
                //7.獲取第二個下拉列表
                var cityEle = document.getElementById("city");
                
                //9.每次選擇一個省份之前,清空第二個下拉列表的option內容(清空上一次選擇省份添加進去的optioncity內容)
                cityEle.options.length=0;
                
                //2.遍歷二維數組中的省份
                for(var i=0;i<cities.length;i++){
                    //註意,比較的是角標
                    if(val==i){
                        //3.遍歷用戶選擇的省份下的城市
                        for(var j=0;j<cities[i].length;j++){
                            //alert(cities[i][j]);
                            //4.創建城市的文本節點
                            var textNode = document.createTextNode(cities[i][j]);
                            //5.創建option元素節點
                            var opEle = document.createElement("option");
                            //6.將城市的文本節點添加到option元素節點
                            opEle.appendChild(textNode);
                            //8.將option元素節點添加到第二個下拉列表中去
                            cityEle.appendChild(opEle);
                        }
                    }
                }
            }
        </script>
        
    </head>
    <body>
        <div>
            
            <!--1.logo部分的div-->
            <div>
                <!--切分為3個小的div-->
                <div class="top">
                    <img src="../img/logo2.png" height="47px"/>
                </div>
                <div class="top">
                    <img src="../img/header.png" height="47px"/>
                </div>
                <div class="top" style="padding-top: 15px;height: 35px;">
                    <a href="#">登錄</a>
                    <a href="#">註冊</a>
                    <a href="#">購物車</a>
                </div>
            </div>
            <!--清除浮動-->
            <div id="clear">
                
            </div>
            <!--2.導航欄部分的div-->
            <div id="menu">
                <ul>
                    <li >首頁</li>
                    <li >電腦辦公</li>
                    <li >手機數位</li>
                    <li >孕嬰保健</li>
                    <li >鞋靴箱包</li>
                </ul>
            </div>
            <!--3.中間註冊表單部分div-->
            <div id="contanier">
                <div id="content">
                    <table border="1" align="center" cellpadding="0" cellspacing="0" width="70%" height="70%" bgcolor="white">
                        <form method="get" action="#" onsubmit="return checkForm()">
                        <tr>
                            <td colspan="2" align="center">
                                <font size="5">會員註冊</font>
                            </td>
                            
                        </tr>
                        <tr>
                            <td>
                                用戶名
                            </td>
                            <td>
                                <input type="text" name="username" id="username" onfocus="showTips('username','必須以字母開頭')" onblur="check('username','用戶名不能為空')" /><span id="usernamespan"></span>
                            </td>
                        </tr>
                        <tr>
                            <td>密碼</td>
                            <td>
                                <input type="password" name="password" id="password" onfocus="showTips('password','密碼長度不能低於6位!')" onblur="check('password','密碼不能為空!')" /><span id="passwordspan"></span>
                            </td>
                        </tr>
                        <tr>
                            <td>確認密碼</td>
                            <td>
                                <input type="password" name="repassword" />
                            </td>
                        </tr>
                        <tr>
                            <td>email</td>
                            <td>
                                <input type="text" name="email" id="email" />
                            </td>
                        </tr>
                        <tr>
                            <td>姓名</td>
                            <td>
                                <input 
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何使用js和jq來獲取各種高度呢??比如被滾動條捲去的高度,網頁可視區域的高度,網頁全文的高度,某個元素的高度。 ...
  • 例:把人物信息的值傳入函數進行處理。簡化為如下:css部分#wrap{ width: 100px; background: #0f0;}HTML部分<div id="wrap"></div>JS部分1.對象傳參var oWrap = document.getElementById('wrap');v ...
  • 在正常的數學邏輯思維中,0.1+0.2=0.3這個邏輯是正確的,但是在JavaScript中0.1+0.2!==0.3,這是為什麼呢?這個問題也會偶爾被用來當做面試題來考查面試者對 JavaScript的數值的理解程度。 在JavaScript中的二進位的浮點數0.1和0.2並不是十分精確,在他們相 ...
  • 在開始本文之前我們先來看一段代碼 顯然這段代碼輸出10,並沒有向我們期望的返回3,原因也很簡單(js的變數提升)函數在調用時候訪問的是一個全局作用域的i,此時for迴圈已經執行完畢,全局變數i=10; 在ES5標準中,我們要想返回期望的3,通常的做法也很簡單,就是讓數組中的每個函數有單獨的作用域,那 ...
  • 1.瀏覽器限制 瀏覽器出於安全的角度,當產生跨域,則瀏覽器會對請求進行一些校驗,校驗不通過,則報跨域安全問題 2.跨域指發出去的請求不是本域的,協議、功能變數名稱、埠任何一項不一樣就認為是跨域 3.XHR(XMLHttpRequest)請求如果發送的請求不是XHR,則哪怕是跨域,瀏覽器都不會報錯比如使用i ...
  • With the development of computer science technology, people are facing more and more information everyday. The traditional static way to display infor... ...
  • 網頁有些時候需要能滾動的效果,但是不想要滾動條,我就遇到了這樣的需求。自己用jq寫了一個垂直滾動條。 純css也可以實現 但是edge和Firefox不相容,自己想了一下只要監聽滾輪事件,用jq寫應該很簡單,所以就自己寫了一下。 原理:需要兩個div,第一個就命名為box-wrap吧,它是一個外層的 ...
  • 原理 設置一個塊級作用域溢出的效果,只需要在外部塊的位置上設置overflow:scroll和height:xx即可。 此時,塊級作用域的內容位移超出外部塊的位移就會出現滾動條,當內部塊滾動時,我們能看到滾動效果。這裡的實現方式有二種,對父元素(簡稱外部塊)進行設置(top:0和bottom:0)能 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...