程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> webform(九)——JQuery基礎(選擇器、事件、DOM操作),webformjquery

webform(九)——JQuery基礎(選擇器、事件、DOM操作),webformjquery

編輯:關於.NET

webform(九)——JQuery基礎(選擇器、事件、DOM操作),webformjquery


JQuery —— 一個js函數包

一、選擇器

1、基本選擇器

①id選擇器:#       ②class選擇器:.       ③標簽名選擇:標簽名      

④並列選擇:用,隔開          ⑤後代選擇:用空格隔開

代碼用法展示:

<title></title>
    <script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div id="div1">
            <a>aaaaa</a>  <%--a標記--%>
        </div>
        <div id="div2"></div>
        <div class="div"></div>
        <div></div>     
    </form>
</body>
</html>

<%--   $   JQuery標志性符--%>
<script type="text/javascript" >
    $("#div1").css("background-color", "red");  //id選擇,$("#div1")相當於js中docunment.getElementById("div1"),下面其他類似
    $(".div2").css("background-color", "red");   //class選擇
    $("div").css("background-color", "red");     //標簽選擇
    $("#div1,#div2").css("background-color", "red");    //並列選擇,用逗號隔開
    $("#div1 a").css("background-color", "red");    //後代選擇,用空格隔開
</script>
基本選擇器

 

2、過濾選擇器

(1)、基本過濾

①首個::first        ②尾個::last       ③任意個::eq(索引號)        ④大於::gt(索引號)

⑤小於::lt(索引號)         ⑥排除::not(選擇器)         ⑦奇數:odd           ⑧偶數:even

(2)、屬性過濾

①屬性名過濾:[屬性名]   

②屬性值過濾:[屬性名=屬性值]或[屬性名!=屬性值]

(3)、內容過濾

①文字過濾::contains(“字符串”)

②子元素過濾::has(選擇器)

代碼用法展示:

<script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div class="div">aaa</div>
        <div class="div">bbb</div>
        <div class="div" hehe="aaa" he="aaa"><a></a></div>
        <div class="div" hehe="bbb">bbb</div>
        <div class="div">aaa</div>
        <div class="div"><a></a></div>
    </form>
</body>
</html>
<script type="text/javascript" >
    //基本過濾
    $(".div:first").css("background-color", "red");   //取首個
    $(".div:last").css("background-color", "red");   //取最後一個
    $(".div:eq(2)").css("background-color", "red");   //取任意個, :eq(索引號)  或者$(".div").eq(2).css("background-color", "red");——重點
    $(".div:gt(2)").css("background-color", "red");   //:gt(索引號),取大於該索引號的
    $(".div:lt(2)").css("background-color", "red");   //:lt(索引號),取小於該索引號的
    $(".div:not(.div:eq(2))").css("background-color", "red");   //:not(“選擇器”),排除這一個,選剩余的
    $(".div:odd").css("background-color", "red");   //:odd,選索引為奇數的
    $(".div:even").css("background-color", "red");   //:even,選索引為偶數的

    //屬性過濾
    $(".div[he]").css("background-color", "red");   //[屬性名],選有該屬性名的
    $(".div[hehe=aaa]").css("background-color", "red");   //[屬性名=屬性值],選有該屬性名且是此屬性值的
    $(".div[hehe!=bbb]").css("background-color", "red");   //[屬性名!=屬性值],選有該屬性名的且屬性值不是此的
    //內容過濾
    $(".div:contains('a')").css("background-color", "red");   //:contains('字符串'),選取包含該字符串的——根據文字
    $(".div:has(a)").css("background-color", "red");   //:has(“選擇器”),選取包含該選擇器的——根據選擇器
</script>
過濾選擇器

 

二、事件

1、常規事件——把js事件前面的on去掉

比如:js:onclick——JQuery:click

2、復合事件

①houver(function(){},functiaon(){})——相當於把mouseover()mouseout()合二為一

②toggle(function(){},function(){},....)——點擊事件循環執行,具體看下面的代碼用法展示

代碼用法展示:

<script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
    <form id="form1" runat="server"> 
        <div class="div">aaa</div>
        <div class="div">bbb</div>
        <div class="div"><a></a></div>
        <div class="div">bbb</div>
        <div class="div">aaa</div>
        <div class="div"><a></a></div>
   
    </form>
</body>
</html>
<script type="text/javascript" >
    //單擊事件
    $(".div").click(function () {
        alert('aaa');
    });
    //雙擊事件
    $(".div").dblclick(function () {
        alert('aaa');
    });
    //復合事件hover——相當於把mouseover()mouseout()合二為一
    $(".div").hover(function () {
        $(this).css("background-color","red");
    }, function () {
        $(this).css("background-color", "blue");
    });
    //復合事件toggle——點擊事件循環執行,下面代碼中即點擊div,循環為div更換背景色
    $(".div").toggle(function () {
        $(this).css("background-color", "red");
    }, function () {
        $(this).css("background-color", "yellow");
    }, function () {
        $(this).css("background-color", "blue");
    }, function () {
        $(this).css("background-color", "green");
    }, function () {
        $(this).css("background-color", "orange");
    });
</script>
常規和復合事件

 

3、事件冒泡(冒泡事件)——冒泡部分轉載自:http://www.cnblogs.com/jiqing9006/archive/2012/09/11/2679831.html

      冒泡事件就是點擊子節點,會向上觸發父節點,祖先節點的點擊事件。

解析:下面是html代碼部分:

<body>
<div id="content">
    外層div元素
    <span>內層span元素</span>
    外層div元素
</div>

<div id="msg"></div>
</body>

對應的jQuery代碼如下:

<script type="text/javascript">
$(function(){
    // 為span元素綁定click事件
    $('span').bind("click",function(){
        var txt = $('#msg').html() + "<p>內層span元素被點擊.<p/>";//獲取html信息
        $('#msg').html(txt);// 設置html信息
    });
    // 為div元素綁定click事件
    $('#content').bind("click",function(){
        var txt = $('#msg').html() + "<p>外層div元素被點擊.<p/>";
        $('#msg').html(txt);
    });
    // 為body元素綁定click事件
    $("body").bind("click",function(){
        var txt = $('#msg').html() + "<p>body元素被點擊.<p/>";
        $('#msg').html(txt);
    });
})
</script>
冒泡Jquery

當點擊span時,會觸發div與body 的點擊事件。點擊div時會觸發body的點擊事件。

如何防止這種冒泡事件發生呢?

修改如下:

<script type="text/javascript">
$(function(){
       // 為span元素綁定click事件
    $('span').bind("click",function(event){
        var txt = $('#msg').html() + "<p>內層span元素被點擊.<p/>";
        $('#msg').html(txt);
        event.stopPropagation();    //  阻止事件冒泡
    });
    // 為div元素綁定click事件
    $('#content').bind("click",function(event){
        var txt = $('#msg').html() + "<p>外層div元素被點擊.<p/>";
        $('#msg').html(txt);
        event.stopPropagation();    //  阻止事件冒泡
    });
    // 為body元素綁定click事件
    $("body").bind("click",function(){
        var txt = $('#msg').html() + "<p>body元素被點擊.<p/>";
        $('#msg').html(txt);
    });
})
</script>
阻止冒泡一

event.stopPropagation(); // 阻止事件冒泡

或者通過return false來處理。

<script type="text/javascript">
$(function(){
       // 為span元素綁定click事件
    $('span').bind("click",function(event){
        var txt = $('#msg').html() + "<p>內層span元素被點擊.<p/>";
        $('#msg').html(txt);
        return false;
    });
    // 為div元素綁定click事件
    $('#content').bind("click",function(event){
        var txt = $('#msg').html() + "<p>外層div元素被點擊.<p/>";
        $('#msg').html(txt);
        return false;
    });
    // 為body元素綁定click事件
    $("body").bind("click",function(){
        var txt = $('#msg').html() + "<p>body元素被點擊.<p/>";
        $('#msg').html(txt);
    });
})
</script>
阻止冒泡二

 

 

三、DOM操作

1、操作內容

①表單元素:取值:var s=$(“選擇器”).val()      

                       賦值:$(“選擇器”).val(“值”)

②非標單元素:取值:var s=$(“選擇器”).text(“內容”)            var s=$(“選擇器”).text(“內容”)      

                          賦值:$(“選擇器”).text(“內容”)       $(“選擇器”).html(“內容”)

代碼用法展示:

<script type ="text/javascript" >       
        //$(document).ready相當於js中的window.onload
        $(document).ready(function () {
            $("#a").click(function () {
                $(this).text("bbbb");//改變a標記的顯示內容
            })
            $("#btn1").click(function () {
                $("#txt").val("aaaaaa");//改變文本框的顯示內容
                $(this).val("bbbb");//改變按鈕的顯示內容
            })
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <%--操作內容   start--%>
        <a id="a">aaaaa</a>
        <input type ="text" id="txt" />
        <input type ="button" id="btn1" value ="btn1" />
        <%--操作內容   end--%>
    </form>
</body>
操作內容

 

2、操作屬性

①獲取屬性:var s=$(“選擇器”).attr(“屬性名”)

②設置屬性:$(“選擇器”).attr(“屬性名”,”屬性值”)

③更改屬性:$(“選擇器”).attr(“屬性名”,”屬性值”)

④刪除屬性:$(“選擇器”).removeAttr(“屬性名”)

代碼用法展示:

<style type="text/css" >
        .aaa {
        border :5px solid red;
        }
        .bbb {
        border :10px solid blue;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <%--操作屬性   start--%>
        <input type ="text" id="txt1" />
        <input type ="button" id="btn1" value ="btn1" />
        <input type ="button" id="btn2" value ="btn2" />
        <input type ="button" id="btn3" value ="btn3" />
        <%--操作屬性   end--%>
    </form>
</body>
</html>
<script type ="text/javascript" >
    $("#btn1").click(function () {
        $("#txt1").attr("disabled", "disabled");//點擊btn1按鈕,給文本框設置不可用屬性和class
        $("#txt1").attr("class", "aaa");
    });

    $("#btn2").click(function () {
        $("#txt1").removeAttr("disabled").attr("class","bbb");//點擊btn2按鈕,刪除文本框不可用屬性,並且更改class屬性
    });

    $("#btn3").click(function () {
        var aa = $("#txt1").attr("class");//點擊btn3按鈕,獲取文本框的class屬性,然後alert彈出看看
        alert(aa);
    });
</script>
操作屬性

 

3、操作樣式(一般用操作屬性就可以)

①操作內聯樣式:獲取樣式:var s=$(“選擇器”).css(“樣式名”)

                            設置樣式:$(“選擇器”).css(“樣式名”,”值”)、

$("#btn1").click(function () {

        $("#txt1").css("border", " 5px  solid  red");});

②操作樣式表的class:添加class:$(“選擇器”).addClass(“class名”)

                                    移除class:$(“選擇器”).removeClass(“class名”)

                                    添加移除交替class:$(“選擇器”).toggleClass(“class名”)

 

4、操作相關元素

 ①查找:父輩、前輩:parent()     parents(“選擇器”)

                   子代、後代:children(“選擇器”)   find(“選擇器”)

                   兄弟:哥哥:prev()    prevAll(“選擇器”)

                            弟弟:next()    next All(“選擇器”)

用法代碼展示:

<script src="js/jquery-1.7.2.min.js"></script>
    <style type="text/css" >
        #div1 {
        width :400px;
        height :400px;
        background-color :red;
        }
        #div2 {
        width :300px;
        height :300px;
        background-color :yellow;
        }
        #div3 {
        width :200px;
        height :200px;
        background-color :blue;
        }
        #div4 {
        width :100px;
        height :100px;
        background-color :green;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="div1">
        <div id="div2">
            <div id="div3">
                <div id="div4"></div>
            </div>
        </div>
    </div>
        <div id="div5"></div>
        <div id="div6"></div>
        <div id="div7"></div>
    </form>
</body>
</html>
<script type="text/javascript" >
    $("#div4").click(function () {
        var p = $(this).parent();//查找div4的父級
        var p = $(this).parent().parent();//查找div4的父級的父級
        var p = $(this).parents("#div2");//若知道前輩的id或name,可以用parents("選擇器")
    });

    $("#div1").click(function () {
        var p = $(this).children("#div2");//查找div1的子級,children("#div3")是找不出來的,div3是div1子集的子集
        var p = $(this).find("#div3");//查找div1的後代div3
    });
    //div1、div5、div6、div7平級
    $("#div1").click(function () {
        var p = $(this).next();//查找div1的弟弟,可以next().next()
        var p = $(this).nextAll("#div6");//nextAll("選擇器"),前提知道需要查找的弟弟的選擇器
    });
    $("#div7").click(function () {
        var p = $(this).prev();//查找div1的哥哥,可以prev().prev()
        var p = $(this).prevAll("#div6");//prevtAll("選擇器"),前提知道需要查找的哥哥的選擇器
    });

</script>
查找

②操作:新建:$(“html字符串”)

                  添加:appen(jquery對象或字符串)——某個元素內部添加

                           after(…)——下部平級添加

                           before(…)——上部平級添加

                 移除:empty()——清空內部全部元素

                          remove()——清空元素

                 復制:clone()

代碼用法展示:例子:模仿制作一個微博或者其他的評論頁面

<script src="js/jquery-1.7.2.min.js"></script>
    <style type="text/css" >
        #div1 {
        width :400px;
        height :400px;
        background-color :red;
        }
        #div2 {
        width :300px;
        height :300px;
        background-color :yellow;
        }
        #div3 {
        width :200px;
        height :200px;
        background-color :blue;
        }
        #div4 {
        width :100px;
        height :100px;
        background-color :green;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="div1">
        <div id="div2">
            <div id="div3">
                <div id="div4"></div>
            </div>
        </div>
    </div>
        <div id="div5"></div>
        <div id="div6"></div>
        <div id="div7"></div>
    </form>
</body>
</html>
<script type="text/javascript" >
    $("#div4").click(function () {
        var p = $(this).parent();//查找div4的父級
        var p = $(this).parent().parent();//查找div4的父級的父級
        var p = $(this).parents("#div2");//若知道前輩的id或name,可以用parents("選擇器")
    });

    $("#div1").click(function () {
        var p = $(this).children("#div2");//查找div1的子級,children("#div3")是找不出來的,div3是div1子集的子集
        var p = $(this).find("#div3");//查找div1的後代div3
    });
    //div1、div5、div6、div7平級
    $("#div1").click(function () {
        var p = $(this).next();//查找div1的弟弟,可以next().next()
        var p = $(this).nextAll("#div6");//nextAll("選擇器"),前提知道需要查找的弟弟的選擇器
    });
    $("#div7").click(function () {
        var p = $(this).prev();//查找div1的哥哥,可以prev().prev()
        var p = $(this).prevAll("#div6");//prevtAll("選擇器"),前提知道需要查找的哥哥的選擇器
    });

</script>
css

前台代碼:

總代碼
    <title></title>
    <script src="js/jquery-1.7.2.min.js"></script>
    <link href="css/css7.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div id="boss">
            <div id="top">
                <textarea id="txt1"></textarea>
                <input type="button" id="btn1" value="提交" />
            </div>
            <div id="bottom">
                <%--評論div   start--%>
                <div class="item">
                    <div class="item_top">aaaaaaaa</div>
                    <div class="item_txt">
                        aaaaaaa    
                    </div>
                    <div class="item_bottom">
                        1999-1-1
                        <input type="button" class="btn_del" value="刪除" />
                    </div>
                </div>
                <%--評論div   end--%>
            </div>
        </div>
    </form>
</body>
</html>
<script type="text/javascript">
    $("#btn1").click(function () {
        var oTxt = $("#txt1").val();//取文本框的內容
        var aaa = "<div class=\"item\">";
        aaa += "<div class=\"item_top\">aaaaaaaa</div><div class=\"item_txt\">";
        aaa += oTxt;
        aaa += "</div><div class=\"item_bottom\">";
        aaa += "1999-1-1 <input type=\"button\" value=\"刪除\" class=\"btn_del\" /></div></div>";//拼接評論div的字符串
        //判斷是否已有評論
        if ($(".item").length <= 0) {
            $("#bottom").append(aaa);//若沒有,直接在 $("#bottom")內部添加一個
        }
        else {
            $(".item").eq(0).before(aaa);//若有,從索引為0的一個,上部平級添加
            //$(".item").eq(0).after(aaa);//若有,從索引為0的一個,下部平級添加
        }
    });

    //live()——未來事件,即給還沒有出現但一定會出現的元素添加事件,只要這個class是.btn_del的元素出現,就會綁上這個事件
    $(".btn_del").live("click", function () {
        $(this).parent().parent().remove();
    });
</script>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved