Web 基礎(chǔ)28 JQuery簡介及其入門案例 (二)

1.1 jQuery的核心方法

1.1.1 jQuery的核心方法

$(); == jQuery();
        
//完整版本
jQuery(document).ready(function() {
    alert("頁面加載完成了肢预!");
});



??底層:先將document對象轉(zhuǎn)成jQuery對象,然后調(diào)用ready方法,并且傳一個匿名的函數(shù),最后才實(shí)現(xiàn)這個功能

1.1.2 核心方法的作用

  • 設(shè)置頁面加載完成之后要執(zhí)行的代碼
    • $(function(){代碼});
  • 作為選擇器獲取標(biāo)簽的對象
    • var div01 = $("#div01");
  • 把字符串形式的標(biāo)簽,轉(zhuǎn)化成jQuery對象
    • var jQueryA = $("<a );
  • 把dom對象轉(zhuǎn)換成jQuery對象
    • var div01 = $(document.getElementById("#div01"));

1.2 使用jQuery遍歷集合對象

??通過選擇器的到的對象通常是集合對象痹束,但是這里要注意的是這個集合是一個JQ對象喊式,只能使用JQ的方法

  • 方式1 普通for循環(huán)
for(var x = 0;x < divList.size();x++) {
    var div = $(divList[x]);
    //var div = divList.get(x);
    alert(div.html());
}
  • 方式2.1 使用jQuery方法each來遍歷集合對象
//function不帶參數(shù)
divList.each(function() {
    //this:集合中的每一個元素對象,this是dom對象汗销,不能直接調(diào)用jQuery的方法
    alert($(this).html());
});
  • 方式2.2 使用jQuery方法each來遍歷集合對象
//function帶參數(shù)
divList.each(function(index,element) {
    //element == this
    alert(index + ":" + $(element).html());
});

  • 注意:
    • 普通for循環(huán)獲得集合的長度用size()或者length都可以
    • 兩種方式遍歷得到的元素對象都是dom對象,需要轉(zhuǎn)換之后才能調(diào)用jQuery方法

1.3 JQ的常用方法

1.3.1 html()&text()&val()

  • 使用jQuery設(shè)置獲取標(biāo)簽的標(biāo)簽體
//html() 
//類似于dom的innerHTML屬性
alert(jQueryDiv.html());// 如果沒有參數(shù),獲取標(biāo)簽的標(biāo)簽體
jQueryDiv.html("小熊先生");//如果有參數(shù),設(shè)置標(biāo)簽的標(biāo)簽體

//text()      
//不解析html標(biāo)簽,類似于dom的innerText屬性      
alert(jQueryDiv.text());//如果沒有參數(shù),獲取標(biāo)簽的標(biāo)簽體
jQueryDiv.text("小熊先生");//如果有參數(shù),設(shè)置標(biāo)簽的標(biāo)簽體

  • 使用jQuery設(shè)置獲取標(biāo)簽的值
//val()
alert(inputList.val());//無參,獲取
inputList.val("lisi");//有參,設(shè)置

1.3.2 attr()

alert(aList.attr("href"));//獲取
aList.attr("href","http://www.itcast.cn");//設(shè)置
removeAttr(name)//移除屬性

1.3.3 css()&addClass()

  • css()
alert(div01.css("height"));//獲取
div01.css("height","300px");//設(shè)置

//css可以一次設(shè)置多個屬性,接收一個對象
//{屬性:屬性值,屬性2:屬性值2}
div01.css({"height":"800px","width":"800px"});
  • addClass()
div01.addClass("css01 css02");//添加
  • removeClass()
div01.removeClass("css01 css02");//移除
  • 說明
    • 這些方法一般用來控制頁面的顯示,涉及跟前端的配合
    • 對于前端: 經(jīng)常做css層疊樣式表,供我們導(dǎo)入
    • 對于后端:一般不需要單獨(dú)設(shè)置某一個css樣式的值,一般給元素添加一個class屬性

1.3.4 is(選擇器)

??其實(shí)判斷前面這個jQuery對象是否符合參數(shù)中的選擇器(是否包含在選擇器中),返回一個布爾值

var div01 = $("#div01");
    
//id選擇器
alert(div01.is("#div01"));

//類選擇器
alert(div01.is(".css01"));

1.4 jQuery的事件處理

?&esmp;這里我也只能簡單的說一個,很多具體的需要去看JQ的手冊椅挣,官網(wǎng)有下載的系吭。

  • click() 按鈕點(diǎn)擊時觸發(fā)事件所對應(yīng)的方法
var button01 = $("#button01");
button01.click(function() {
    alert("點(diǎn)擊事件觸發(fā)了1啡直!");
});

  • blur() 失去焦點(diǎn)時觸發(fā)事件所對應(yīng)的方法
var username = $("#username");
username.blur(function() {
    //var value = username.val();
    var value = $(this).val();
    
    if(value == "") {
        alert("請輸入用戶名箫柳!");
        return;
    }
});
  • change() 標(biāo)簽值發(fā)生變化時觸發(fā)事件所對應(yīng)的方法
var select01 = $("#select01");
select01.change(function() {
    alert($(this).val());
});
  • 事件處理其實(shí)就是調(diào)用它相應(yīng)時間的方法,傳一個匿名的函數(shù)

    • 當(dāng)這個事件發(fā)生的時候,這個匿名函數(shù)就會執(zhí)行
    • 例如:鍵盤按下去就會觸發(fā)keydown事件 ,接下來每個幾毫秒觸發(fā) keypress事件,最后抬起來的時候會觸發(fā) keyup事件
  • 其實(shí)講道理讼育,很多功能在手冊上都可以找到帐姻,不需要記住稠集,使用前一定要看手冊是說明真的,千萬別忘記了饥瓷,不然容易鬧笑話

1.5 幾個案例

??可以先自己寫一下剥纷,把我的腳本先刪除

1.5.1 實(shí)現(xiàn)表單校驗(yàn)的案例

??在用戶提交注冊表單時在信息框顯示提示如圖。

登錄案例1.png

??用戶未輸入

登錄案例2.png
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>jQuery的案例</title>
        <style type="text/css">
            table tr td{                
                border:1px solid darkblue;          
            }
            table {
                margin-left:30%;
                position:relative ;
                border:1px solid darkblue;
                width: 500px;
            }
            
            span {
                color: red;
            }
        </style>
        
        <script type="text/javascript" src="lib/jquery-1.8.3.min.js"></script>
        <script type="text/javascript">
            $(function() {
                //使用jQuery實(shí)現(xiàn)表單校驗(yàn)的案例
                var spanList = $("span");
                //遍歷集合對象
                spanList.each(function() {
                    //$(this).css("display","none");
                    //hide()    隱藏標(biāo)簽
                    //show()    顯示標(biāo)簽
                    $(this).hide();
                });
                
                
                $("form").submit(function() {
                    if($("#username").val() == "") {
                        //顯示span標(biāo)簽
                        $(spanList[0]).show();
                    }
                    else {
                        //隱藏span標(biāo)簽
                        $(spanList[0]).hide();
                    }
                    
                    if($("#password").val() == "") {
                        //顯示span標(biāo)簽
                        $(spanList[1]).show();
                    }
                    else {
                        //隱藏span標(biāo)簽
                        $(spanList[1]).hide();
                    }
                    
                    //判斷是否有span標(biāo)簽顯示呢铆,如果有span標(biāo)簽顯示晦鞋,那說明用戶名或者密碼為空,表單不可以提交棺克,返回false
                    if(spanList.is("span:visible")) {
                        return false;
                    }
                    else {
                        return true;
                    }
                    
                    
                });
                
                
                
            });
        </script>
    </head>
    <body>
        <form method="get" action="success.html">
            <table>
                    <tr>
                        <th colspan="2">用戶登陸</th>
                    </tr>
                    <tr>
                        <td>用戶名稱</td>
                        <td>
                            <input type="text" id="username"  name="username" />
                            <span>請輸入用戶名悠垛!</span>
                        </td>
                    </tr>
                    <tr>
                        <td>用戶密碼</td>
                        <td>
                            <input type="password" id="password"  name="password"/>
                            <span>請輸入密碼!</span>
                        </td>
                    </tr>
                    
                    <tr>
                        <td colspan="2" align="center">
                            <input type="submit"  value="提交"/>
                            <input type="reset" value="重置" />
                        </td>
                    </tr>
            
            </table>
        </form>
    </body>
</html>

1.5.2 多選框案例

??實(shí)現(xiàn) 多選與反選按鈕 以及 計(jì)算按鈕

商品列表統(tǒng)計(jì).png
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>JQ代碼案例2</title>
    </head>
    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
        $(function(){
            var allCheck = $("#allCheck");
            allCheck.click(function(){
                $("input[name=item]").each(function(){
                    $(this).prop("checked",allCheck.prop("checked"))
                });
            });
            
            var otherCheck = $("#otherCheck");
            otherCheck.click(function(){
                $("input[name=item]").each(function(){
                    if($(this).prop("checked")){
                        $(this).removeProp("checked");
                    }else{
                        $(this).prop("checked","checked");
                    }
                });
                
            });
            
            var sumBtn = $("#sumBtn");
            sumBtn.click(function(){
                var sum = 0;
                var item = $("input[name=item]:checked");
                item.each(function(){
                    sum = sum + parseInt($(this).val());
                });
                $("#sumId").html(sum);
            });
            
            
        });
        
        
    </script>
    <body>
        <div>商品列表</div>
        <input type="checkbox" name="item" value="3000" />筆記本3000元<br />
        <input type="checkbox" name="item" value="2500"/>HTC手機(jī)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" name="all" id="allCheck" />全選<br />
        <input type="checkbox" name="all" id="otherCheck"/>反選<br />
        <input type="button" value="總金額" id="sumBtn" /><span id="sumId"></span>
    </body>
</html>


1.5.2 表格關(guān)聯(lián)

??就是完成類似地址的選擇

省份選擇.png
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
        <script type="text/javascript">
        $(function(){
            //定義一個json數(shù)組
            var arr = [
                {name:"河南省",cities:["鄭州","洛陽","開封"]},
                {name:"遼寧省",cities:["沈陽","大連","鞍山"]},
                {name:"山東省",cities:["青島","濟(jì)南","煙臺"]},
            ];
            
            //將省份添加到省份列表中
            for(var i=0;i<arr.length;i++){
                $("#province").html($("#province").html()+"<option>"+arr[i].name+"</option>");
            }
            
            //為省份添加事件,當(dāng)省份被選中之后,添加城市到城市列表中
            $("#province").click(function(){
                for(var i=0;i<arr.length;i++){
                    
                    var name = arr[i]["name"];
                    var cities = arr[i]["cities"];
                    if($("select[id=province] option:selected").html() == name){
                        $("#city").html("<option>--選擇市--</option>");
                        for(var j=0;j<cities.length;j++){
                            $("#city").html($("#city").html()+"<option>"+cities[j]+"</option>");
                        }
                    }
                }
            });
        });
        </script>
    </head>
    <body>
        <select id="province">
            <option>--選擇省--</option>
        </select>
        
        
        <select id="city">
            <option>--選擇市--</option>
        </select>

    </body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娜谊,一起剝皮案震驚了整個濱河市确买,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纱皆,老刑警劉巖拇惋,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抹剩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蓉坎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門澳眷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛉艾,你說我怎么就攤上這事钳踊。” “怎么了勿侯?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵拓瞪,是天一觀的道長。 經(jīng)常有香客問我助琐,道長祭埂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任兵钮,我火速辦了婚禮蛆橡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掘譬。我一直安慰自己泰演,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布葱轩。 她就那樣靜靜地躺著睦焕,像睡著了一般藐握。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垃喊,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天猾普,我揣著相機(jī)與錄音,去河邊找鬼缔御。 笑死抬闷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耕突。 我是一名探鬼主播笤成,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眷茁!你這毒婦竟也來了炕泳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤上祈,失蹤者是張志新(化名)和其女友劉穎培遵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體登刺,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籽腕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了纸俭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皇耗。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖揍很,靈堂內(nèi)的尸體忽然破棺而出郎楼,到底是詐尸還是另有隱情,我是刑警寧澤窒悔,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布呜袁,位于F島的核電站,受9級特大地震影響简珠,放射性物質(zhì)發(fā)生泄漏阶界。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一聋庵、第九天 我趴在偏房一處隱蔽的房頂上張望荐操。 院中可真熱鬧,春花似錦珍策、人聲如沸托启。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屯耸。三九已至拐迁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗绣,已是汗流浹背线召。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留多矮,地道東北人缓淹。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像塔逃,于是被迫代替她去往敵國和親讯壶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345