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

来源:http://www.cnblogs.com/H2921306656/archive/2016/10/19/5977885.html
-Advertisement-
Play Games

JQuery —— 一個js函數包 一、選擇器 1、基本選擇器 ①id選擇器:# ②class選擇器:. ③標簽名選擇:標簽名 ④併列選擇:用,隔開 ⑤後代選擇:用空格隔開 代碼用法展示: <title></title> <script src="js/jquery-1.7.2.min.js"></ ...


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 = $

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • win10或win7 C盤複製文件等遇到"錯誤0x80070522:客戶端沒有所需的特權" 在運行中輸入 icacls c:\ /setintegritylevel M ...
  • 距離ubuntu最新版發佈已經差不多半年了,博主近來對linux系統有了興趣,奈何資金不足無法購置一臺新機來安裝ubuntu。所以想到了虛擬機。 虛擬機的選擇 VMwareWorkstation,功能強大,虛擬機的顯卡也不錯。VMware缺點是很不綠色,會對你的系統有一些影響。而vmare work ...
  • 文檔目錄 本節內容: 什麼是多租戶 多部署 - 多資料庫 單部署 - 多資料庫 單部署 - 單資料庫 單部署 - 混資料庫 多部署 - 單/多/混 資料庫 ABP中的多租戶 啟用多租戶 宿主與租戶 會話 數據過濾 IMustHaveTenant 介面 IMayHaveTenant 介面 補充提醒 在 ...
  • 畢業兩年了,一事無成,如何破... 我是一名普通專科畢業生,大學期間學習的軟體技術專業。其實大學期間真心啥也沒學會,老師講一點c再講一點c#,然後再講點asp.net。雖然總體是asp.net,但是除了數據結構講了些基本知識,ado.net的知識基本沒講過。我甚至大三才知道c#和asp.net的聯繫 ...
  • 在網上收集的六個串口助手的源代碼,有用winform做的,也有WPF的。 下載 ...
  • C#環境下,使用Selenium調用不同的瀏覽器,可以使用如下方法: 註意實現: 1、使用IE瀏覽器的時候要在該項目的bin\Debug或bin\Release目錄下添加IEDriverServer.exe文件。 用nuget獲取IEDriverServer.exe:Install-Package ...
  • 一、博客系統進度回顧 上一遍博客介紹到,系統已經實現到了發佈以及前臺佈局展示,接下來就是實現一些,詳情頁,留言、輪播圖管理、右側博文統計信息實現。 二、博客系統詳情頁實現 2.1先來看看詳情頁展示的效果 2.2實現控制器在前臺控制器中創建一個Blog的控制器,主要是展示博客分類以及詳情頁 Actio ...
  • 效果圖:(右下角拖拽改變窗體大小) 第一步:添加xaml代碼: 第二步:xaml.cs後臺代碼 聲明 下次更新(菜單縮放):效果圖 轉載請註明地址~謝謝 謝謝大家關註 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...