day31-JQuery04

来源:https://www.cnblogs.com/liyuelian/archive/2022/12/04/16950899.html
-Advertisement-
Play Games

JQuery04 6.jQuery的DOM操作02 6.9常用遍歷節點方法 取得匹配元素的所有子元素組成的集合:children(),該方法只考慮子元素而不考慮任何後代元素 取得匹配元素後面的同輩元素的集合:next()/nextAll() 如果是next方法,就是拿到指定元素後面的一個元素,如果是 ...


JQuery04

6.jQuery的DOM操作02

6.9常用遍歷節點方法

  1. 取得匹配元素的所有子元素組成的集合:children(),該方法只考慮子元素而不考慮任何後代元素

  2. 取得匹配元素後面的同輩元素的集合:next()/nextAll()

    如果是next方法,就是拿到指定元素後面的一個元素,如果是nextAll,就是後面所有的元素。下麵同理

  3. 取得匹配元素前面的同輩元素的集合:prev()/prevAll()

  4. 取得匹配元素前後所有的同輩元素的集合:siblings()

  5. 獲取指定的第幾個元素:nextAll().eq(index)

  6. 對獲取到的同輩元素進行過濾:nextAll().filter("標簽")

應用實例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用遍歷節點方法</title>
    <style type="text/css">
        div, span {
            width: 140px;
            height: 60px;
            margin: 20px;
            background: #9999CC;
            border: #000 1px solid;
            float: left;
            font-size: 17px;
            font-family: Roman;
        }
    </style>
    <script type="text/javascript" src="../script/jquery-3.6.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            //查找所有子元素 (class為one的div的)
            $("#b1").click(function () {
                $("div.one").children().each(function () {
                    $(this).css("background", "#f14343")
                    // alert("子div的內容是= " + $(this).text())
                })
                //指定獲取到第二個子元素
                // alert("第二個子元素= "+$("div.one").children().eq(1).text())
            })

            //獲取後面的同輩元素 (class為one的div的)
            $("#b2").click(function () {
                //1.$("div.one"):選擇class為one的div
                //2.nextAll():獲取指定元素後面的所有同輩元素
                //3.filter("div"):過濾,得到指定標簽的元素
                //4.each 遍歷
                $("div.one").nextAll().filter("div").each(function () {
                    $(this).css("background", "#f14343")
                    // alert("後面的同輩div= " + $(this).text());
                })
                //如果我們希望得到後面同輩元素的第幾個,可以用eq
                //獲取到後面同輩div元素的第二個
                //alert("後面同輩元素的第二個= "+$("div.one").nextAll().filter("div").eq(1).text())//aaaaaaa

                //如果我們希望得到的是指定元素緊鄰的後一個同輩元素,用next()
                // alert($("div.one").next().text())
            })

            //獲取前面的同輩元素 (class 為 one 的 div 的)
            $("#b3").click(function () {
                $("div.one").prevAll().filter("div").each(function () {
                    $(this).css("background", "#f14343")
                    // alert("獲取前面的同輩元素是= " + $(this).text())
                })
                //獲取到前面同輩div元素的第1個
                // alert("前面同輩元素的第個= "+$("div.one").prevAll().filter("div").eq(0).text())//ccccccc

                //如果我們希望得到的是指定元素緊鄰的前一個同輩元素,用prev()
                // alert($("div.one").prev().text())
            })

            //獲取所有的同輩元素 (class 為 one 的 div 的)
            $("#b4").click(function () {
                $("div.one").siblings().filter("div").each(function () {
                    $(this).css("background", "#f14343")
                    // alert("獲取所有的同輩元素是= " + $(this).text())
                })
            })
        })
    </script>
</head>
<body>
<input type="button" value="查找所有子元素 (class 為 one 的 div 的)" id="b1"/><br/><br/>
<input type="button" value="獲取後面的同輩元素 (class 為 one 的 div 的)" id="b2"/><br/><br/>
<input type="button" value="獲取前面的同輩元素 (class 為 one 的 div 的)" id="b3"/><br/><br/>
<input type="button" value="獲取所有的同輩元素 (class 為 one 的 div 的)" id="b4"/>
<hr/>
<div>
    ccccccc
</div>
<div class="one">
    <div id="one">
        XXXXXXXXX one
    </div>
    <div id="two">
        XXXXXXXXX two
    </div>
    <div id="three">
        XXXXXXXXX three
    </div>
    <div id="four">
        XXXXXXXXX four
    </div>
</div>
<div>
    tttttttttt
</div>
<div>
    aaaaaaa
</div>
<div>bbbbbb</div>
</body>
</html>

6.10CSS-DOM操作

  1. 獲取和設置元素的樣式屬性: css()

  2. 獲取和設置元素透明度: opacity 屬性

  3. 獲取和設置元素高度, 寬度: height(), width()

    在設置值時, 若只傳遞數字, 則預設單位是px。如需要使用其他單位則需傳遞一個字元串, 例如$("p:first").height("2em");

  4. 獲取元素在當前視窗中的相對位移: offset(). 其返回對象包含了兩個屬性: top, left. 該方法只對可見元素有效

應用實例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css-dom操作</title>
    <script type="text/javascript" src="../script/jquery-3.6.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#b1").click(function () {
                var width = $("img").width();
                var height = $("img").height();
                alert("width= " + width + " height= " + height)
                //offset的使用
                var offset = $("img").offset();
                alert("img 的 top = " + offset.top)
                alert("img 的 left = " + offset.left)
            })
        })
    </script>
</head>
<body>
<br/>
<br/>
Hello,World!! &nbsp;<img src="../img/1.jpg" width="300" height="170"/>
<button id="b1" type="button">獲取圖片信息</button>
</body>
</html>

7.多選框應用-練習

image-20221204201653643
  1. 點擊->把左邊選中的移動到右邊

  2. 點擊==> 把左邊全部移動到右邊

  3. 雙擊左邊或者右邊的某個選項,將其自動移動到另外一邊

應用實例

思路:(1) 綁定事件 (2) 選擇對應的對象 (3) 插入[內部插入]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多選框應用</title>
    <script type="text/javascript" src="../../script/jquery-3.6.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            //思路:(1) 綁定事件 (2) 選擇對應的對象 (3) 插入[內部插入]

            // 全部移到右邊
            //(1) 綁定事件
            $("#add_all").click(function () {
                //(2) 選擇對應的對象
                //將第一個選擇框中的所有子元素都移動到第二個選擇框中
                $("#second").append($("#first > option"))
                //或者 $("#second").append($("#first").children())
            })

            // 選中的移到右邊
            //(1) 綁定事件
            $("#add").click(function () {
                //(2) 選擇對象
                //將第一個選擇框選中的子元素,移動到第二個選擇框中
                $("#first > option:selected").appendTo($("#second"))
            })

            // 雙擊移到右邊-dblclick()
            $("#first > option").dblclick(function () {
                //選擇對象--隱式傳入this(dom)
                $(this).appendTo($("#second"))
            })

            // 全部移動左邊-前面的反向操作
            $("#remove_all").click(function () {
                //將第二個選擇框中的所有子元素都移動到第一個選擇框中
                $("#first").append($("#second > option"))
                //或者 $("#first").append($("#second").children())
            })

            // 選中的移到左邊
            $("#remove").click(function () {
                //層級選擇器的箭頭可以省略
                $("#second  option:selected").appendTo($("#first"))
            })

            // 雙擊移到左邊
            $("#second").dblclick(function () {
                $("#second > option:selected").appendTo($("#first"))
            })

            //雙擊移到左邊-方法二
            // $("#second > option").dblclick(function () {
            //     $(this).appendTo($("#first"))
            // })
        })
    </script>
</head>
<body>
<div style="border:1px ;margin:150px 0px 0px 450px; width:350px;height:260px; background-color:#eaeaea;">
    <table border="0" width="285" height="169" align="left" style="margin:20px 0px 0px 52px;">
        <tr>
            <td width="126">
                <!--multiple="multiple" 能同時選擇多個
                size="10" 確定下拉選的長度
                -->
                <select name="first" size="10" multiple="multiple" class="td3" id="first">
                    <option value="選項 1">選項 1</option>
                    <option value="選項 2">選項 2</option>
                    <option value="選項 3">選項 3</option>
                    <option value="選項 4">選項 4</option>
                    <option value="選項 5">選項 5</option>
                    <option value="選項 6">選項 6</option>
                    <option value="選項 7">選項 7</option>
                    <option value="選項 8">選項 8</option>
                </select>
            </td>
            <td width="69" valign="middle">
                <input name="add" id="add" type="button" class="button" value="-->"/>
                <input name="add_all" id="add_all" type="button" class="button" value="==>"/>
                <input name="remove" id="remove" type="button" class="button" value="&lt;--"/>
                <input name="remove_all" id="remove_all" type="button" class="button" value="&lt;=="/>
            </td>
            <td width="127" align="left">
                <select name="second" size="10" multiple="multiple" class="td3" id="second">
                    <option value="選項 9">選項 9</option>
                </select>
            </td>
        </tr>
    </table>
</div>
</body>
</html>

8.頁面載入完畢後的觸發方法-入口函數

  1. 在頁面載入完畢後,瀏覽器會通過JavaScript為dom元素添加事件
  2. 在常規的JavaScript代碼中,通常使用window.onload方法,window.onload=function(){}
  3. 在jQuery中使用$(document).ready()方法

jQuery 入口函數:

$(document).ready(function(){
    // 執行代碼
});
//或者簡寫為:
$(function(){
    // 執行代碼
});

JavaScript 入口函數:

window.onload = function () {
    // 執行代碼
}

jQuery 入口函數與 JavaScript 入口函數的區別:

  • jQuery 的入口函數是在 html 所有標簽(DOM)都載入之後,就會去執行。
  • JavaScript 的 window.onload 事件是等到所有內容,包括外部圖片之類的文件載入完後,才會執行。
img
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 在CAN協議中,CAN匯流排除了眾多優秀的特點外,還具有錯誤監測功能、錯誤通知功能、和錯誤恢復功能、故障封閉功能。下麵系統瞭解以下CAN匯流排上的錯誤幀。 ###錯誤檢測 所有ECU均有可以檢測錯誤的功能。 ###錯誤通知 檢測出錯誤的ECU會立即通知其他ECU ###錯誤恢復 正常發送消息的EC ...
  • 一、塊設備簡介 塊設備驅動是存儲設備驅動,塊設備驅動相比字元設備驅動的主要區別如下: ①、塊設備只能以塊為單位進行讀寫訪問,塊是 linux 虛擬文件系統(VFS)基本的數據傳輸單位。字元設備是以位元組為單位進行數據傳輸的,不需要緩衝。 ②、塊設備在結構上是可以進行隨機訪問的,對於這些設備的讀寫都是按 ...
  • 一、寫在前 知識學了就忘!不用就忘!我太健忘!特此記錄!用於複習打卡!Redis乾就完事了! 二、來辣! Redis做非同步隊列:一般list結構做隊列,rpush生產消息,lpop消費消息,當lpop沒有消息的時候,要適當sleep一會兒;如果不sleep,就用blpop,會阻塞;生產一次消費多次, ...
  • 1.3 Apache Hadoop的重要組成 Hadoop=HDFS(分散式文件系統)+MapReduce(分散式計算框架)+Yarn(資源協調框架)+Common模塊 Hadoop HDFS:(Hadoop Distribute File System )一個高可靠、高吞吐量的分散式文件系統 比如 ...
  • 和一個真正iOS開發的區別? 學習iOS的這段時間, 我一直在思考和感受著自己和一個真正做了幾年iOS的dev之間的區別. 同時也在反向思考, 我自己和一個新學Android的人, 又有什麼區別. 也許在技術轉型中, 這些學習的思考和陣痛都是有共性和不可避免的. 在此分享一下感受, 如果有人也有技術 ...
  • 最近在開發時,遇到相同的頁面,很多函數和佈局也大差不多,所以向在路由註冊時就給他們分配不同的路由,通過一些判斷走不同的邏輯獲取數據。 ...
  • /** * 替換字元串,預設替換 ""。傳遞 regExps,一個正則表達式數組。 * * @param source 被修剪的字元串 * @param regExps 正則表達式,找到匹配的字元串,然後替換掉 * @param replacement 不傳遞,預設被替換的字元串是 ""。傳遞的數組 ...
  • 作為後端程式員,瞭解和掌握一些前端知識也是必不可少的,本章就和大家分享Vue的一些基礎知識,希望能夠對Vue小白有所幫助。話不多說,下麵我們直接進入主題。 一、Vue簡介 Vue簡介:1、JavaScript框架;2、簡化Dom操作;3、響應式的數據驅動(頁面是由數據來生成的,當數據改變以後頁面會同 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...