jQuery——有關於jQuery操作 屬性,元素,還有尺寸位置等

来源:https://www.cnblogs.com/BM-laoli/archive/2020/03/23/12550484.html
-Advertisement-
Play Games

1.有關於屬性的操作 "項目源碼" 所謂的屬性操作就是操作一系列的元素的屬性,value啦class啦 .......特別是有關於input的操作是非常重要的。 為了完成後續有關於框架的高級騷操作,我們現在先來學習一下,jQuery的常用屬性操作的三種 prop(),attr(),data() (1 ...


1.有關於屬性的操作

項目源碼

所謂的屬性操作就是操作一系列的元素的屬性,value啦class啦 .......特別是有關於input的操作是非常重要的。

為了完成後續有關於框架的高級騷操作,我們現在先來學習一下,jQuery的常用屬性操作的三種 prop(),attr(),data()

(1)、元素固有的屬性值prop()

  • 所謂的固有的屬性 ,比如a標簽裡面的href input裡面的type等...
    我們看一下如何獲取,還有如何設置
  1. 獲取:prpo('屬性')
  2. 設置屬性:prpo('屬性','屬性值')
  3. 非常的適合操作 表單的屬性 比如 disabled/checked/selected

(2)、自定義屬性值attr()

  • 用於給元素添加自己定義的屬性
  1. 獲取:attr('屬性');
  2. 設置:attr('屬性','屬性值')
    註意: 類似於原生的DOM>>>getAttribute(),該操作 適用於H5自定義屬性

(3)、數據相關data/非常重要!/

  • 這個非常的重要!特別是到了後期操作數據渲染的時候,還有框架的時候,前端的三大框架裡面都有用到類似的實現邏輯
  1. 附加(設置)數據的語法:data( 'name' ,'value')
  2. 獲取數據的語法 data('name').
    註意:這種方式也同樣的適用於H5裡面獲取自定義的屬性
    代碼舉例:
 <a href="http://www.baidu.com" title="都挺好">都挺好</a>
    <input type="checkbox" name="" id="" checked>
    <div index="1" data-index="2">我是div</div>
    <span>123</span>
    <script>
        $(function() {
            //1. element.prop("屬性名") 獲取元素固有的屬性值
            console.log($("a").prop("href"));
            $("a").prop("title", "我們都挺好");
            $("input").change(function() {
                console.log($(this).prop("checked"));
            });
            // console.log($("div").prop("index"));
            // 2. 元素的自定義屬性 我們通過 attr()
            console.log($("div").attr("index"));
            $("div").attr("index", 4);
            console.log($("div").attr("data-index"));
            // 3. 數據緩存 data() 這個裡面的數據是存放在元素的記憶體裡面
            $("span").data("uname", "andy");
            console.log($("span").data("uname"));
            // 這個方法獲取data-index h5自定義屬性 第一個 不用寫data-  而且返回的是數字型
            console.log($("div").data("index"));
        })

2.有關於文本屬性的操作

常見的文本操作主要有三種 html() / text()/ val();分別對應元素DOM的innerHTML、innerText 、value的屬性

這些操作並沒有什麼難度,詳細請參見下麵的代碼實例

<body>
    <div>
        <span>我是內容</span>
    </div>
    <input type="text" value="請輸入內容">
    <script>
        // 1. 獲取設置元素內容 html()
        console.log($("div").html());
        // $("div").html("123");
        // 2. 獲取設置元素文本內容 text()
        console.log($("div").text());
        $("div").text("123");
        // 3. 獲取設置表單值 val()
        console.log($("input").val());
        $("input").val("123");
    </script>
</body>

3.有關於元素的操作

有關於元素的操作主要是:標簽的遍歷,創建,添加,刪除等操作(簡單的理解就是對標簽的 增 刪 改 查)

(1)、遍歷元素

  • jQuery隱式迭代是對同一類元素做了同樣的操作。 如果想要給同一類元素做不同操作,就需要用到遍歷。
  1. 語法有兩種
    語法1

​ 註意:此方法用於遍歷 jQuery 對象中的每一項,回調函數中元素為 DOM 對象,想要使用 jQuery 方法需要轉換。

語法2

​ 註意:此方法用於遍歷 jQuery 對象中的每一項,回調函數中元素為 DOM 對象,想要使用 jQuery 方法需要轉換。

  1. 代碼實例:
<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <script>
        $(function() {
            // 如果針對於同一類元素做不同操作,需要用到遍歷元素(類似for,但是比for強大)
            var sum = 0;
            var arr = ["red", "green", "blue"];
            // 1. each() 方法遍歷元素 
            $("div").each(function(i, domEle) {
                // 回調函數第一個參數一定是索引號  可以自己指定索引號號名稱
                // console.log(i);
                // 回調函數第二個參數一定是 dom 元素對象,也是自己命名
                // console.log(domEle);  // 使用jQuery方法需要轉換 $(domEle)
                $(domEle).css("color", arr[i]);
                sum += parseInt($(domEle).text());
            })
            console.log(sum);
            // 2. $.each() 方法遍歷元素 主要用於遍曆數據,處理數據
            // $.each($("div"), function(i, ele) {
            //     console.log(i);
            //     console.log(ele);
            // });
            // $.each(arr, function(i, ele) {
            //     console.log(i);
            //     console.log(ele);
            // })
            $.each({
                name: "andy",
                age: 18
            }, function(i, ele) {
                console.log(i); // 輸出的是 name age 屬性名
                console.log(ele); // 輸出的是 andy  18 屬性值
            })
        })
    </script>
</body>

(2)、創建 修改 添加

  • 有關於它們的操作都是非常的簡單 ,具體的詳細的操作 請去查看官方的API

jQuery方法操作元素的創建、添加、刪除方法很多,則重點使用部分,如下:

語法總和

再啰嗦一下:以上只是元素的創建、添加、刪除方法的常用方法,其他方法請參詳API。

案例代碼

<body>
    <ul>
        <li>原先的li</li>
    </ul>
    <div class="test">我是原先的div</div>
    <script>
        $(function() {
            // 1. 創建元素
            var li = $("<li>我是後來創建的li</li>");
      
            // 2. 添加元素
            // 	2.1 內部添加
            // $("ul").append(li);  內部添加並且放到內容的最後面 
            $("ul").prepend(li); // 內部添加並且放到內容的最前面
            //  2.2 外部添加
            var div = $("<div>我是後媽生的</div>");
            // $(".test").after(div);
            $(".test").before(div);
      
            // 3. 刪除元素
            // $("ul").remove(); 可以刪除匹配的元素 自殺
            // $("ul").empty(); // 可以刪除匹配的元素裡面的子節點 孩子
            $("ul").html(""); // 可以刪除匹配的元素裡面的子節點 孩子
        })
    </script>
</body>

4.有關於尺寸位置的操作

(1)、有關於元素(尺寸)的操作//嘿嘿嘿 開車了,尺寸

  • 語法詳解

註意:有了這套 API 我們將可以快速獲取和子的寬高,至於其他屬性想要獲取和設置,還要使用 css() 等方法配合。

  • 具體的實例代碼:
<body>
    <div></div>
    <script>
        $(function() {
            // 1. width() / height() 獲取設置元素 width和height大小 
            console.log($("div").width());
            // $("div").width(300);

            // 2. innerWidth() / innerHeight()  獲取設置元素 width和height + padding 大小 
            console.log($("div").innerWidth());

            // 3. outerWidth()  / outerHeight()  獲取設置元素 width和height + padding + border 大小 
            console.log($("div").outerWidth());

            // 4. outerWidth(true) / outerHeight(true) 獲取設置 width和height + padding + border + margin
            console.log($("div").outerWidth(true));
        })
    </script>
</body>

(2)、有關於位置的操作

最主要的還是我們的三個操作:offset()/ position()/ scrollTop()/ scrollLeft()/....當然了還要更多的騷操作

  • 照例,我們先看一下語法

  • 代碼實例
<body>
    <div class="father0">
        <div class="son"></div>
    </div>
        
    <div class="back">返回頂部</div>
    <div class="container"></div>
   
    <script>
        $(function() {
            // 1. 獲取設置距離文檔的位置(偏移) offset
            console.log($(".son").offset());
            console.log($(".son").offset().top);
            // $(".son").offset({
            //     top: 200,
            //     left: 200
            // });
      
            // 2. 獲取距離帶有定位父級位置(偏移) position   如果沒有帶有定位的父級,則以文檔為準
            // 這個方法只能獲取不能設置偏移
            console.log($(".son").position());
            // $(".son").position({
            //     top: 200,
            //     left: 200
            // });
      
      		// 3. 被捲去的頭部
      		$(document).scrollTop(100);
            // 被捲去的頭部 scrollTop()  / 被捲去的左側 scrollLeft()
            // 頁面滾動事件
            var boxTop = $(".container").offset().top;
            $(window).scroll(function() {
                // console.log(11);
                console.log($(document).scrollTop());
                if ($(document).scrollTop() >= boxTop) {
                    $(".back").fadeIn();
                } else {
                    $(".back").fadeOut();
                }
            });
            // 返回頂部
            $(".back").click(function() {
                // $(document).scrollTop(0);
                $("body, html").stop().animate({
                    scrollTop: 0
                });
                // $(document).stop().animate({
                //     scrollTop: 0
                // }); 不能是文檔而是 html和body元素做動畫
            })
        })
    </script>
</body>

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

-Advertisement-
Play Games
更多相關文章
  • 已經許久沒有更新博客了,並不是疫情阻擋了我寫作的步伐,只是寫作已轉移到word(整理一下去換稿酬,拿了稿酬可以去換酒錢)。如下圖所示,書《Vue.2x實踐指南》交稿快半年了,由於疫情原因,預計下個月底才能上架,《Javascript實訓教程》已完成寫稿60%,《React和Mogodb實訓》籌劃中。 ...
  • 新建目錄 posts (閱讀頁面) 點擊目錄右鍵新建page 目錄結構如下: 在app.json中,把posts調整為預設顯示的頁面(暫時先這樣,具體的多頁面之後再說) { "pages": [ "pages/posts/posts", "pages/welcome/welcome" ], "win ...
  • JavaScript面向對象, 註意啦在這其實面向對象是一種編程的方式,它的思想是通用的,因此 我強烈的建議你去查看我在python,面向對象編程中做的筆記。 面向對象與面向過程 這裡還是相對比較容易理解的,這是兩種截然不同的編程方式。 | |面向過程 | 面向對象 | | : |: :| :| | ...
  • 一、Bootstrap Table列寬拖動的方法 Bootstrap Table可拖動列,需要用到它的Resizable擴展插件 需要引入 bootstrap-table擴展插件 bootstrap-table-resizable.js 這個插件還依賴於colResizable v1.6(下載地址: ...
  • 組件化的思想 將一個頁面中的處理邏輯放在一起,處理起來就會很複雜,不利於後續管理和擴展。 如果將頁面拆分成一個個小的功能塊,每個功能塊實現自己的內容,之後對頁面的管理和維護就變得很容易了。 註冊組件的基本步驟 1.創建組件構造器 2.註冊組件 3.使用組件 //創建組件構造器對象 const cpn ...
  • 事件註冊單個事件註冊語法: $('div').click(function () { 處理的事情 })$('div').click(function () { $(this).css('backgroundColor', 'red') });$('div').mouseenter(function ... ...
  • 前端是什麼? 工作流程為從UI處得到原型圖或者效果圖,在項目(網站、微信公眾號、小程式、WEBAPP)中還原圖片效果,然後與後臺進行各種數據交互。 目前的前端市場整體還是處於迅速發展期,市場對於前端的需求也一直比較大。市場對於中高級的前端工程師需求更加迫切,所以就算入了前端的門,也需要不斷的提升自己 ...
  • 在頁面中我們經常會使用到 checkbox 和 radio,但是,部分瀏覽器顯示的效果並不能讓我們滿意,因此想通過一種方式,更改其樣式。 這裡使用到的就是使用 label,結合 before 實現樣式的更改。 完整代碼: 效果圖: 這樣相比之前就好看那麼一點點,如果引入字體圖標,對 css 稍作更改 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...