1. 程式人生 > >jQuery實現省市聯動

jQuery實現省市聯動

#### jQuery的each遍歷操作
有兩種使用each的方法
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

使用each實現全選,//使用物件訪問的方法$().each(function(){})

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="../../js/jquery-1.8.3.js"></script>
        <script>
$(function(){ $("#checkbox").click(function(){ var isChecked=this.checked; //使用物件訪問的方法$().each(function(){}) $("input[name='hobby']").each(function(){ this.checked=isChecked; }); }); });
</script> </head> <body> 請選擇您的愛好<br /> <input type="checkbox" id="checkbox"/>全選/全不選<br /> <input type="checkbox" name="hobby" value="足球" /> <input type="checkbox" name="hobby" value="籃球" /> <input type="checkbox"
name="hobby" value="游泳" />
<input type="checkbox" name="hobby" value="唱歌" /><br /> </body> </html>

使用each遍歷方法遍歷物件和陣列//$.each(object,[callback])
圖片描述

append追加元素

  • append:A.append(B) 將B追加到A的內容末尾處
  • appendTo:A.appendTo(B) 將A追加到B的內容末尾處

這裡寫圖片描述
這裡寫圖片描述

清除

  • empty 將所有子元素刪除
    這裡寫圖片描述
  • remove 連同匹配到的元素一起刪除
    這裡寫圖片描述
    這裡寫圖片描述

change()

規定當被選元素的 change 事件發生時執行的函式。
這裡寫圖片描述

createTextNode和InnerHTML區別

innerHTML會將b標籤效果呈現,而createTextNode不會

var p=document.createElement("p");
p.className="p";
p.innerHTML="<b>Hello world!</b>";
document.body.appendChild(p);

這裡寫圖片描述

var p=document.createElement("p");
                p.className="p";
                var textnode=document.createTextNode("<b>Hello world!<b/>");
                p.appendChild(textnode);
                $("body").append(p);

這裡寫圖片描述

省市聯動

  1. 確定事件(change事件),在繫結的函式裡面獲取使用者選擇的省份
  2. 建立二維陣列來儲存
  3. 遍歷二維陣列中的省份(找到匹配使用者選擇的省份)(jQuery遍歷操作)
  4. 遍歷陣列中的城市
  5. 建立一個城市的文字節點( DOM操作)
  6. 建立option元素節點(DOM操作)
  7. 將文字節點新增到元素節點中(使用jQuery的文件操作方法)
  8. 獲取第二個下拉列表並將option元素節點新增進去
  9. 清除第二個下拉列表的option內容
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>使用jQuery完成省市二級聯動</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 type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
        <script>
            $(function(){
                //2.建立二維陣列用於儲存省份和城市
                var cities = new Array(3);
                cities[0] = new Array("武漢市","黃岡市","襄陽市","荊州市");
                cities[1] = new Array("長沙市","郴州市","株洲市","岳陽市");
                cities[2] = new Array("石家莊市","邯鄲市","廊坊市","保定市");
                cities[3] = new Array("鄭州市","洛陽市","開封市","安陽市");

                $("#province").change(function(){
                    //10.清除第二個下拉列表的內容
                    $("#city").empty();

                    //1.獲取使用者選擇的省份
                    var val = this.value;
                    //alert(val);
                    //3.遍歷二維陣列中的省份
                    $.each(cities,function(i,n){
                        //alert(i+":"+n);
                        //4.判斷使用者選擇的省份和遍歷的省份
                        if(val==i){
                            //5.遍歷該省份下的所有城市
                            $.each(cities[i], function(j,m) {
                                //alert(m);
                                //6.建立城市文字節點
                                var textNode = document.createTextNode(m);
                                //7.建立option元素節點
                                var opEle = document.createElement("option");
                                //8.將城市文字節點新增到option元素節點中去
                                $(opEle).append(textNode);
                                //9.將option元素節點追加到第二個下拉列表中去
                                $(opEle).appendTo($("#city"));
                            });
                        }
                    });

                });
            });
        </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 type="text" name="name" />
                            </td>
                        </tr>
                        <!--1.編寫HTML檔案部分的內容-->
                        <tr>
                            <td>籍貫</td>
                            <td>
                                <!--2.確定事件,通過函式傳參的方式拿到改變後的城市-->
                                <select id="province">
                                    <option>--請選擇--</option>
                                    <option value="0">湖北</option>
                                    <option value="1">湖南</option>
                                    <option value="2">河北</option>
                                    <option value="3">河南</option>
                                </select>
                                <select id="city">

                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>性別</td>
                            <td>
                                <input type="radio" name="sex" value="男"/><input type="radio" name="sex" value="女"/></td>
                        </tr>
                        <tr>
                            <td>出生日期</td>
                            <td>
                                <input type="text" name="birthday" />
                            </td>
                        </tr>
                        <tr>
                            <td>驗證碼</td>
                            <td>
                                <input type="text" name="yanzhengma" />
                                <img src="../img/yanzhengma.png" />
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <input type="submit" value="註冊" />                                          
                            </td>
                        </tr>
                        </form>
                    </table>
                </div>
            </div>
            <!--4.廣告圖片的div-->
            <div id="">
                <img src="../img/footer.jpg" width="99%" />
            </div>
            <!--5.超連結與版權資訊的div-->
            <div id="bottom">
                <a href="#">關於我們 </a>
                <a href="#">聯絡我們 </a>
                <a href="#">招賢納士 </a>
                <a href="#">法律宣告</a>
                <a href="#">友情連結</a>
                <a href="#">支付方式</a>
                <a href="#">配送方式 </a>
                <a href="#">服務宣告 </a>
                <a href="#">廣告宣告 </a>
                <p>Copyright © 2005-2018 商城 版權所有 </p>
            </div>
        </div>
    </body>
</html>

屬性操作

這裡寫圖片描述

  1. val() 獲取value屬性的值
  2. val(…) 給value屬性設定值

  3. html() 獲得html()程式碼,如果有標籤,一併獲得

  4. html(…) 設定html程式碼 ,如果有標籤,將進行解析
  5. text() 獲得文字,如果有標籤,忽略
  6. text(…) 設定文字,如果含有標籤,不進行解析

下拉列表左右選擇

  1. 確定事件(滑鼠單擊事件click)
  2. 獲取左側下拉列表被選中的option($(“#left option:selected”))
  3. 將獲取到的option新增到右側的下拉列表
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>下拉列表左右選擇</title>
        <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
        <script>
            $(function(){
                /*1.選中單擊去右邊*/
                $("#selectOneToRight").click(function(){
                    $("#left option:selected").appendTo($("#right"));
                });

                /*2.單擊全部去右邊*/
                $("#selectAllToRight").click(function(){
                    $("#left option").appendTo($("#right"));
                });

                /*3.選中雙擊去右邊*/
                $("#left option").dblclick(function(){
                    $("#left option:selected").appendTo($("#right"));
                });
            });
        </script>

    </head>
    <body>
        <table border="1" width="600" align="center">
            <tr>
                <td>
                    分類名稱
                </td>
                <td>
                    <input type="text" name="cname" value="手機數碼"/>
                </td>
            </tr>
            <tr>
                <td>
                    分類描述
                </td>
                <td>
                    <textarea name="cdesc" rows="4" cols="20">手機數碼類商品</textarea>
                </td>
            </tr>
            <tr>
                <td>
                    分類商品
                </td>
                <td>
                    <span style="float: left;">
                        <font color="green" face="宋體">已有商品</font><br/>
                        <select multiple="multiple" style="width: 100px;height: 200px;" id="left">
                            <option>IPhone6s</option>
                            <option>小米4</option>
                            <option>錘子T2</option>
                        </select>
                        <p><a href="#" style="padding-left: 20px;" id="selectOneToRight">&gt;&gt;</a></p>
                        <p><a href="#" style="padding-left: 20px;" id="selectAllToRight">&gt;&gt;&gt;</a></p>
                    </span>
                    <span style="float: right;">
                        <font color="red" face="宋體">未有商品</font><br/>
                        <select multiple="multiple" style="width: 100px;height: 200px;" id="right">
                            <option>三星Note3</option>
                            <option>華為6s</option>
                        </select>
                        <p><a href="#" >&lt;&lt;</a></p>
                        <p><a href="#" >&lt;&lt;&lt;</a></p>
                    </span>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type='submit' value="修改"/>
                </td>
            </tr>
        </table>
    </body>
</html>

jQuery事件ready

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
        <script>
            document.getElementById("click1").onclick=function(){
                alert("元素載入完畢!!");
            }
//          執行錯誤,為什麼?
//          因為DOM還沒有載入完畢
        </script>
    </head>
    <body>
        <div id="click1">點我</div>
    </body>
</html>

解決方法:將JS程式碼引動到需要執行的HTML程式碼後面去,一般建議移動到body標籤後。
或者將JS程式碼放到一個頁面載入函式window.onload=function(){}裡面去

事件處理bind

api文件解釋的太麻煩,看程式碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>點選展開</title>
        <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
        <script src="../../../js/jquery-1.8.3.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function() {
                $("#panel h5.head").bind("click", function() {
                    var $content = $(this).next();
                    if($content.is(":visible")) {
                        $content.hide();
                    } else {
                        $content.show();
                    }
                })
            })
        </script>
    </head>

    <body>
        <div id="panel">
            <h5 class="head">什麼是jQuery?</h5>
            <div class="content">
                .is()用一個表示式來檢查當前選擇的元素集合,如果其中至少有一個元素符合這個給定的表示式就返回true。

如果沒有元素符合,或者表示式無效,都返回'false'。 

注意:在jQuery 1.3中才對所有表示式提供了支援。在先前版本中,如果提供了複雜的表示式,比如層級選擇器(比如 + , ~ 和 > ),始終會返回true


            </div>
        </div>
    </body>

</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>滑鼠滑過</title>
        <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
        <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            
           

相關推薦

使用JQuery實現省市聯動

使用JQuery實現省市聯動 環境準備 1.準備資料庫 2.準備頁面 <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script> <script type="

jquery實現省市聯動的兩種方式(xml,,,json)

省市聯動,xml傳值方式 匯入相應的jar 建立表單 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> &

jQuery實現省市聯動

#### jQuery的each遍歷操作 有兩種使用each的方法 使用each實現全選,//使用物件訪問的方法$().each(function(){}) <!DOCTYPE html> <html> &

Ajax && Jquery&&百度搜索提示&&JQuery實現省市聯動

                                          &nb

JQuery實現AJAX異步請求實現省市聯動(數據傳輸格式為xml)

集合 .html 省市聯動 utf func app 字符串 tco name AJAX的響應的數據格式:   文本,一段HTML的數據,XML,JSON。 使用工具生成xml的文件:   通常使用XStream工具,將集合,數組,對象轉化成XML格式。     步驟一:導

JQuery實現AJAX異步請求實現省市聯動(數據傳輸格式為json)

數據傳輸 char html utf-8 har change 字段 語法規則 false json概述:javascript object notation 是一種輕量級的數據交換格式。json本質上就是一種數據格式的字符串;javascript可以直接解析json,因為

分別使用js和JQuery實現省市二級聯動

1.1html js中this指的是當前操作的物件 <tr> <td>籍貫</td> <td><select onchange="changeCity(this.value)" id="province" &g

JQuery 載入並解析 XML實現省市聯動

/* * jquery通過$.get()或者$.post()方法來解析並載入xml檔案 * * * 以$.get(url,callback)方法為例 * * url

jQuery實現三級聯動

alert 三級 jic ads 9.png http cti charset where 代碼如下 <!DOCTYPE html> <html> <head> <meta http-equiv="con

jQuery實現 三級聯動--省市縣

jQuery1.遍歷省 在省的一列追加遍歷出來的省2.遍歷市2.1 根據省的索引來選擇對應的市2.2 清空上一回選擇的市和縣2.3 如果省的索引大於 0 ,使其為 0 ,才能正常的遍歷市,否則不能正常匹配2.4 在市的一列後邊追加遍歷出來的市3.遍歷縣3.1 根據市的索引來選擇對應的縣3.2 清空上一回選擇的

【javaweb】JQ實現省市聯動

需求:比如在註冊頁面中,需要選擇籍貫,當我們選擇省的時候,市可以隨著省的選擇不同而變動。 步驟分析:1. 匯入JQ的檔案                   2. 文件載入事件:頁面初始化   &

【javaweb】JS實現省市聯動

需求:比如在註冊頁面中,需要選擇籍貫,當我們選擇省的時候,市可以隨著省的選擇不同而變動。 字首知識:https://blog.csdn.net/qq_42370146/article/details/84326604 過程分析: 1. 確定事件:  onchange 2. 函式

ajax+jQuery實現三級聯動

liandong.html <!DOCTYPE html> <html> <meta charset='utf-8' /> <script src="jquery-3.3.1.min.js"></script> &

jquery實現二級聯動

這兩天一直在看jquery實現二級聯動於是自己結合網上的編寫了一個小demo 程式碼如下:首先引入jquery 其次編寫頁面: <body> <select id="checkE"> <option value="">請選擇種

XML與JSON的格式資料,實現 省市聯動

1,XML 後臺設定響應格式:response.setContentType("text/xml;charset=GBK"); /* * xml格式 * <citys> <city id="1"> <pid>2</pid>

ajax實現省市聯動

jsp頁面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTM

Ajax+servlet+ json+ mysql+jsp 實現省市聯動

CityServlet package com.suse.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import

JS實現省市聯動

不說多了,直接上程式碼,實現省市二級聯動 思路是:點選省份下拉時,觸發getCity()函式,遍歷陣列來獲取市的值 javascript程式碼: var city=[ [], [], ["石家莊","唐山",

JavaScript實現省市聯動

spa lose utf-8 二維數組 for col script 結果 meta 我們經常會遇到選擇省市縣的下拉框。比如我們選擇了省份的話,縣的下拉框會自動篩選,接下來我們就做一個這樣的省市聯動吧!!! 先使用一個二維數組存儲省份的信息: <

jquery ajax實現省市二級聯動

今天給大家帶來使用jQuery ajax實現的省市聯動效果。我們直奔主題,先說下實現思路: 準備資料 這裡資料庫我使用的是mysql,先看下錶格: provience表 city表 這裡使用provience表的主鍵作為city表的外來鍵,