整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          jQuery對標簽屬性操作方法的匯總

          jQuery對標簽屬性操作方法的匯總

          屬性操作

          attr(name):獲取屬性值

          attr(key,value):設置屬性值

          attr(properties):一次設置多個屬性值, 要求參數是一個json對象

          removeAttr(name):移除屬性

          2 對class屬性的操作

          addClass(class):添加class

          removeClass(class):移除class

          toggleClass(class):如果有對應的class屬性值, 則移除, 反之則添加

          hasClass(class):如果有對應的class屬性值, 則返回true, 反之返回false

          3 對style屬性的操作

          css(name):獲取到指定的css屬性值

          css(name,value):設置指定的css屬性值

          css(properties):一次設置多個css屬性值 要求參數必須是json對象

          4 尺寸

          width(): 獲取元素的寬度

          width(value): 設置元素的寬度

          height(): 獲取元素的高度

          height(value):設置元素的高度

          5 文本

          innerHTML() javascript方法

          html(): 獲取雙邊標簽中的內容

          html(val): 設置雙邊標簽中的內容

          innerTEXT javascript方法, 兼容性差

          text(): 獲取雙邊標簽中的內容, 不能解析HTML標簽

          text(val): 設置雙邊標簽中的內容, 不能解析HTML標簽

          6 表單的值

          val(): 獲取元素的value屬性值

          val(val):設置元素的value屬性值


          屬性和屬性值語法規則:

          1 可以不加單位, 但帶單位的必須加引號

          $("img").attr({
              src: "img07.jpg",
              title: "紫荊公寓",
              width:300, //參考HTML語法, 可以不加單位
              height:"200px", //也可以加單位, 但必須加引號
              alt: "紫荊公寓"
          });

          2 帶橫線的必須加引號

          $('div').css({
              "font-size":"40px", //帶橫線的必須加引號
              "font-weight":"bold",
              color:"red"
          });

          3 css樣式可以采用駝峰式寫法(第二個單詞的首字母必須大寫)

          $('div').css({
              fontSize:"40px", //駝峰式寫法, 可以不加引號
              "font-weight":"bold",
              color:"red"
          });

          4 鍵/值的引號問題

          鍵可以加引號, 也可不加引號;

          但是對值要求很嚴格, 字符串型的必須加引號

          $("img").attr({
          src: "img07.jpg", //值是字符串型必須加引號
          "title": "紫荊公寓", //鍵可加也可不加引號
          width:300,
          height:"200px",
          alt: "紫荊公寓"
          });


          5 采用json寫法的鍵/值對格式:用英文","隔開


          ext()方法會把包含的字符轉義處理,html()則不會.所謂轉義就是字符的另一種顯示方法,例如"<" 顯示成 "<",這就是轉義了,其中的<就是<的轉義字符.還有很多可以轉義的字符,可以搜索下看看.


          下邊是項目中用到的2個語句:span中包含了jquery的語句輸出結果.


          1. $('.title').text("<img src=" ">");


          顯示結果為<img src=" ">,這里的<img src=" ">不會被解析成html的img標簽,而是以存字母文字的形式顯示,也就是單純的字符串:<img src=" "> .并且f12查看源碼時看到span包含的<img src=" ">文字內容外層有雙引號哦.看下圖,


          ?


          如果你用右鍵選擇編輯為html,則看到其中的轉義字符<這就說明我們的<被轉移了,


          ?


          如果我們想把<img>顯示成標簽,被瀏覽器解析.那么就需要如下方法.



          2. $('.title').html("<img >");


          顯示結果為解析后的html代碼段,那么這里的<img >就會按照h5的標簽img圖片進行解析顯示了.下圖是f12的頁面代碼結果span中的<img>標簽外層無雙引號,且頁面此時會顯示出來圖片.


          ?



          ?

          、概覽

          jQuery官網:https://jquery.com/
          jQuery是一個高效、輕量并且功能豐富的js庫。
          核心在于查詢query。
          jQuery是一個優秀的js函數庫,是React/Vue/Angular框架之外中大型項目的首選。
          jQuery的主旨是write less, do more。

          1.1 jQuery的功能

          • html元素的選取
          • 操作html元素
          • css操作
          • html事件處理
          • 實現js動畫效果
          • 能夠鏈式調用
          • 容易擴展插件
          • 封裝了ajax

          1.2 引入jQuery庫

          引入jQuery的方式有2種,一種是項目中直接引入jQuery的min.js文件,一種是使用服務器端jQuery文件(使用cdn)腳本標簽方式引入。

          1.2.1 本地項目引入

          在官網的:https://jquery.com/download/ 鏈接下可以下載到完整的代碼,放到項目文件的js文件夾下。

          <script src="static/js/jquery-3.7.1.min.js"></script>

          1.2.2 cdn方式引入

          在網站:https://www.bootcdn.cn/ 可以獲得穩定、快速、免費的cdn加速服務。

          <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>

          1.2.3 版本兼容

          • 1.x 版本兼容老版本的IE,文件比較大
          • 2.x 版本文件比較小,支持IE8+
          • 3.x 版本引入部分新API,提供多個分包的版本,支持IE9+

          1.2.4 開發的正確姿勢

          開發過程中一般使用非min.js文件方便調試,生產環境部署上線時才使用min.js這種壓縮文件。

          二、jQuery源碼淺析

          2.1 匿名函數調用

          從源碼中可以看出,jQuery的整體邏輯可以用以下簡單的結構進行描述:

          ( function( global, factory ) {
              // 判斷有無window環境的一堆邏輯代碼
          })( typeof window !=="undefined" ? window : this, function( window, noGlobal ) {
              // 構造jQuery的一些邏輯代碼
              return jQuery
          });

          2.2 jQuery是一個函數

          從源碼中可以看出,jQuery被定義為一個函數,函數中返回了一個實例對象(看new關鍵字)。

          繼續跟蹤源碼 new jQuery.fn.init( selector, context),這個函數中調用了makeArray,當然在其他if判斷語句中也有返回偽數組對象(比如,定義了length字段,還有[0]的操作),這里拿makeArray作為演示。

          查看makeArray函數:

          所以這個返回實例對象,是一個偽數組。

          $('#menu-trigger') instanceof Array // false
          $('#menu-trigger') instanceof Object // true

          2.3 jQuery掛載在window上

          從源碼中可以看出,將jQuery函數和window.$ 以及window.jQuery綁定賦值,所以使用jQuery和$ 標識符就可以直接使用jQuery。通常在項目中直接使用$標識符,快捷簡省。

          2.4 jQuery驗證

          所以在引入jQuery的項目中:

          console.log(typeof $); // function
          console.log($===jQuery); // true
          console.log($() instanceof Object); // true

          三、jQuery常見用法

          3.1 函數形式調用

          通常形式為:$(param)

          • param為函數:dom加載完成后,執行該回調函數
          • param為選擇器字符串:查找與該選擇器匹配的所有標簽,并封裝成jQuery對象
          • param為dom對象:將該dom對象封裝成jQuery對象
          • param為標簽字符串:創建標簽對象并封裝成jQuery對象
          $(function() {
              console.log("dom finished and execute this");
          })
          
          $('#btn').click(function () {
              // 這里的this是id為#btn的dom元素
              console.log(this.innerHTML)
              
              console.log($(this).html())
          })
          
          $('<input type="number"></input>').appendTo('div')

          3.2 點語法調用函數

          let list=[1, 2, 3]
          $.each(list, function(i, ele) {
              console.log(i, ele)
          })
          
          $.trim(' hello world ')

          3.3 用法淺析

          • jQuery函數返回的是一個偽數組(Object對象),可以使用length和下標。
          // class中名為btn的dom元素有多少
          $('.btn').length
          
          $('.btn')[0]
          
          $('.btn').get(0)
          
          $('.btn').index()
          
          // 設置名為btn的class對應的dom標簽的文本內容
          $('.btn').text('自定義文本內容')

          通過$(param)傳入的是selector、element、標簽情況下,返回的是包含1個或者多個dom元素對象的偽數組。

          3.4 獲取一組dom元素的常見用法

          // 基礎標簽和class
          // 選擇了所有的div和span標簽
          $('div, span')
          
          // 選擇所有具有某個class的標簽
          $('div.container')
          
          // 層次選擇器
          $('ul span') // ul標簽下的所有span元素
          $('ul>span') // ul標簽下的所有子span元素
          $('.container+li') // class為container的元素后的下一個li元素
          $('ul .item~*') // class為item的元素后面所有兄弟元素
          
          // 過濾選擇器
          $('div:first') // 選擇第一個div
          $('div:last') // 最后一個div
          $('div:not(.container)') // class不為container的所有div
          $('div:lt(3):gt(0)') // 所有div元素中的大于0小于3的div元素,表示1和2索引處的dom元素
          $('div:containers("hello world")') // 內容為hellow world的div元素
          $('div:hidden') // style中display: none的div元素
          $('div[data]') // 有data屬性的div元素, example: <div data=""></div>
          $('div[data="123"]') // 有data屬性且值為123的div元素, example: <div data="123"></div>
          
          // 示例,使table表格的奇數行背景樣式設置
          $('table>tbody>tr:odd')
          
          // form表單中
          $(':text') // 所有單行輸入框
          $(':text:disabled') // 所有disabled的input輸入框
          $(':checkbox') // 所有checkbox
          $(':checkbox:checked') // 所有選中的checkbox
          $('select').val() // select標簽選中的option的value值

          3.5 修改css

          直接修改css屬性(如果其dom標簽存在這個css屬性)

          $('#container').css('background', 'red');
          
          $('#container').css({ 'background' : 'red', 'color': 'blue' }) // 一組屬性

          清空某標簽下的所有dom:

          $('.carousel-inner').empty();

          給某標簽下添加dom標簽:

          $('.carousel-inner').append(domStr);

          移除、添加class:

          $('.carousel-indicators li').removeClass('active');
          $('.carousel-indicators li:first').addClass('active');

          3.6 獲取屬性

          獲取dom標簽上的屬性:

           $('.about-img-1>img').attr('src');

          設置標簽的屬性:

           $('.about-img-1>img').attr('src', (data && data['image']) ? data['image'] : '');

          3.7 一些dom事件

          點擊:

          $('.category-product-page-ul>li').click(function(e) {
              e.preventDefault();
              console.log('this is:', this); // 打印對應的dom標簽
          });

          hover:

          $('#container').hover(  
              function() {  
                  // 當鼠標進入元素時執行的函數
              },
              function() {  
                  // 當鼠標離開元素時執行的函數
              }  
            );

          監聽事件:

          $('.bigImage').on("mousemove", function( e ) {
              // do something
          });

          3.8 發起ajax請求

          const json='/static/js/data/xxx.json';
           $.ajax({
              url: json,  
              dataType: 'json',  
              success: function(data) {
                // do something
              },
              error: function(jqXHR, textStatus, errorThrown) {  
                console.error('Fail to read json:', textStatus, errorThrown, json);
              }  
            });

          post請求:


          主站蜘蛛池模板: 日本免费一区二区久久人人澡| 香蕉一区二区三区观| 精品人妻系列无码一区二区三区 | 亚洲一区欧洲一区| 无码人妻精品一区二区蜜桃AV| 精品国产a∨无码一区二区三区| 国产激情精品一区二区三区| 老熟妇高潮一区二区三区| 久久无码人妻一区二区三区| 精品一区二区三区免费观看| 日本一区中文字幕日本一二三区视频 | 精品国产一区二区三区久久蜜臀| 国产精品揄拍一区二区久久| 久久精品国产一区二区三| 大屁股熟女一区二区三区| 国产a久久精品一区二区三区| 亚洲日韩一区二区三区| 精品国产aⅴ无码一区二区| 人妻体体内射精一区二区| 蜜桃传媒视频麻豆第一区| 成人乱码一区二区三区av| 区三区激情福利综合中文字幕在线一区| 亚洲av乱码一区二区三区按摩| 亚洲电影唐人社一区二区| 久久国产视频一区| 中文字幕日韩一区二区三区不卡| 国产亚洲一区二区三区在线观看 | 中文字幕在线观看一区二区三区| 男人的天堂亚洲一区二区三区 | 亚洲午夜在线一区| 美女视频一区三区网站在线观看| 亚洲视频一区在线| 日本无码一区二区三区白峰美 | 无码少妇一区二区三区芒果| 亚洲AV无码一区二区三区牲色| 亚洲AV无码国产精品永久一区| 亚洲A∨精品一区二区三区下载| 免费高清av一区二区三区| 波多野结衣中文一区二区免费| 丝袜美腿高跟呻吟高潮一区| 精品国产AⅤ一区二区三区4区 |