JQuery知識點總結

来源:https://www.cnblogs.com/weigaojie/archive/2019/03/07/10491116.html
-Advertisement-
Play Games

jQuery概述 js與jQuery 獲取的對象 jQuery獲取的是jquery對象,js獲取的是js對象(dom對象),dom對象不能調用jquery的方法,jquery對象也不能調用dom對象的方法 dom對象轉換為jQuery對象:$(dom對象) 層級選擇器 子代選擇器 $("ul>li" ...


jQuery概述

 

js與jQuery

獲取的對象

jQuery獲取的是jquery對象,js獲取的是js對象(dom對象),dom對象不能調用jquery的方法,jquery對象也不能調用dom對象的方法

dom對象轉換為jQuery對象:$(dom對象)

層級選擇器

子代選擇器 $("ul>li") 使用>號,獲取兒子層級的元素,註意:並不會獲取孫子層的元素後代選擇器 $("ul li") 使用空格,代表後代選擇器,獲取ul下的所有的li元素,包括孫子輩

 

 

 

 

jQuery解決的問題

將原生的單個化操作,批量操作

將原生的複雜的查詢方式,簡單化

將原生逐步操作的方式,鏈式操作

將原生操作複雜的邏輯,提供簡單的介面

隊列控制:

為瞭解決原生的js的不足,隊列也可以解決回調地獄

控制非同步代碼的執行順序

把要執行的每一步放在數組[1,2,3,4,5],一步一步執行

入隊..出隊

三種隊列

  • animate(最高級別)


    $("div").animate({width:400},1000)
  • fx


    queue   dequeue
  • 自定義隊列

    finish 直接結束,來到最後一個狀態

    stop 結束當前隊列的狀態,進行下一個狀態

插件機制:

插件:能夠讓功能進行擴展的一個術語,讓一個對象的功能進行擴展

  • jQuery.fn.extend(object)

多庫共存:

項目的開發方式

本質:

JavaScript框架

宗旨:

write Less do More

作用:

優化js操作、dom操作、頁面交互、事件、ajax、動效

特性:

隱式迴圈,鏈式調用

jQuery核心函數:

jQuery ( )=$ ( )

  • undefinde

    返回空的jquery對象

  • 選擇器,返回jQuery對象

    jQuery(".box")
  • 函數,給document 添加 ready事件

    這個函數在 頁面載入完成後執行

    jQuery(function(){
       
    })

    jQuery("document").reaady(function(){

    })

    jQuery().ready(function(){
       
    })                                        //作用一樣
  • 傳入dom對象,返回jQuery對象

    jQuery(function(){
       let box=document.querySelector(".box");
       jQuery(box);
    })
  • 傳入字元串 ,創建新節點 "<div></div>"

    $(function(){
       $("<div><span>this is span</span></div>").appendTo($(".box"))
    })

jQuery對象常用方法:

  • 選擇器
    • .css ("樣式屬性","樣式值") .css ( { } )

    $(function(){
       $(".box").css({
           backgroundColor:"blue",
           borderRadius:50%
      })
    })

    • 篩選器 :first :not(selector) :even
      :header=>匹配如 h1, h2, h3之類的標題元素
      :eq(index)=>匹配一個給定索引值的元素
      :gt(index)=>匹配所有大於給定索引值的元素
      :animated=>選擇正在運動的元素

    $(function(){
       $(".box:first").css("background-color","red")
    })

  • 篩選的方法:
    • .eq (index) 返回對應下標的jQuery對象

    • .get (index) 返回對應下標的原生對象

    • .first( )

    • .last( )

    • .hasClass("類名") 判斷jQuery數組中是否有一個類名為***對象 返回true、false


      $(function(){
         $(".son").hasClass("son2")
      })
    • .filter([選擇器],[元素],[,function]) 篩選出符合條件的對象


      $(function(){
         $(".son").filter("son2")
      })

      $(function(){
       $(".son").filter(function(item){
         $(this).attr("class")=="box2"
      })
      })
    • .is("選擇器") 判斷是否為某個標簽

    • .map (fn) 遍歷對象 生成一個新的數組

    • .has ("選擇器") 返回一個選中的jQuery對象


      $(function(){
       $(".box").has("span").css("background","red")
      })
    • .not ("選擇器") 從jQuery數組中刪除選中的元素


      $(function(){
       $(".box").not(".box2")
      })
    • .slice (start,[end]) 截取指定位置的jQuery的對象 傳入的是下標


      $(function(){
       $(".box").slice(5)
      })
    • .each (fn) 遍歷jQuery數組,index在前、item在後


      $(function(){
       $(".box").each(function(index,item){
      console.log(item)
      })
      })
    • .index ( ) 返回jQuery對象在數組中的下標

  • 操作屬性的方法:
    • attr ( )

    • removeAttr ( )

    • prop ( )

    • removeProp ( )

  • 操作類名的方法
    • addClass ( )

    • removeClass ( )

    • toggleClass ( )


      $(function(){
       $(".box").addClass("box2")
      })
  • 操作內容的方法:
    • .text ( )

    • .html ( ) 可以識別<>

    • .val ( )

  • jQuery對象元素的位置信息

    • .offset ( ) 返回一個位置信息的對象 相對於瀏覽器的位置


      {top:**,left:**}
    • .position ( ) 返回一個位置信息的對象 相對於定位的祖先元素的位置


      {top:**,left:**}
    • .scrollTop ( )

    • .scrollLeft ( )

  • 常用方法

    .toArray ( ) 將jQuery對象轉換為原生對象

  • 事件對象:

    e.offsetX

    e.offsetY

    e.pageX

    e.pageY

    e.Target

    e.currentTarget ==this

    e.stopPropagation 阻止事件流

    e.preventDefault 阻止預設事件

  • 事件


    $("div").click(function () {
                   $("div").css("color","red")
              })

 

one()

on()

trigger() 自動觸發事件

triggerHandler 自動觸發事件,並且清除瀏覽器預設行為

hover(fn,fn)

ajax:

ajax要解決的問題

  1. 頁面無刷新操作數據

  2. 按需獲取數據的問題

  3. 讓b/s架構的軟體,能像c/s架構的軟體操作流暢

ajax(async javascript and xml)

​ 利用javascript非同步操作數據

new XMLHttpRequest()


function ajax(params){
   if (typeof params!=='object'){
       console.error('參數類型不對');
       return
  }
   if (!params.url){
       console.error('請輸入url')
       return
  }
   //參數初始化
   var url=url
   var type=params.type||"get"
   var datatype=params.dataType||"text"
   //處理數據
   var data=params.data||""
   if (typeof data=='object'){
       var str=""
       for(var i in data){
           str+=i+"="+data[i]+"&"
      }
       data=str.slice(0,-1)
  }
   //判斷獲取方式
   var ajax=new XMLHttpRequest()
   ajax.onload=function(){
       
  }
   if (type=='get'){
       ajax.open("get","/ajax?name=zhang")
  ajax.send()
  }
   else if (type=="post"){
       ajax.open("post","/ajax")
       ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")
       ajax.send("name=zhangsan")
  }
}
ajax({
   url:'/',    必須有
   type:'get',      可有可無
   dataType:'text',     可有可無
   data:{name:"zhangsan"},     可有可無
   success:function(data){         可有可無
               upDate(data)
          },
})

 


#天氣頁面獲取數據
$(".btn").click(function(){
       $.ajax({
           url:"https://www.toutiao.com/stream/widget/local_weather/data/?city=太原",
           dataType:"json",
           success:function(data){
               upDate(data)
          },
           error:function(){
               console.log("no")
          }
      })
  }).trigger("click")

   function upDate(data){
       $(".box").text(data.data.weather.aqi)
       console.dir(data.data.weather)
       $(".box2").text(data.data.weather.city_name)
       $(".box3").text(data.data.weather.dat_condition
)
  }

xml

html、svg是xml衍生出來的

html也叫模板,數據也叫模型

svg=>矢量圖

ajax獲取數據

建立:1.xml


<?xml version="1.0" encoding="UTF-8"?>
<root>
   <stu>
       <name>zhangsan</name>
       <age>20</age>
       <sex>man</sex>
   </stu>
</root>           //xml沒有標簽,可以自己定義

建立:2.html


//表格
<script>
window.onload=function(){
       var ajax=new XMLHttpRequest()
       var tbody=document.querySelector("tbody")
       ajax.onload=function(){
           console.log(ajax.response)
           con=ajax.responseXML
           stu=con.getElementsByTagName("stu")
           var str=''
           for (i=0;i<stu.length;i++){
               var name=con.getElementsByTagName("name")[i].innerHTML
               var age=con.getElementsByTagName("age")[i].innerHTML
               var se $("ul>li")  x=con.getElementsByTagName("sex")[i].innerHTML
               str=str+'<tr><td>'+name+'</td><td>'+age+'</td><td>'+sex+'</td></tr>'
          }
           tbody.innerHTML=str
      }
   ajax.open("get","aa.xml")
       ajax.send()
  }
<script>
       
ajax.response   返迴文本,預設為文本格式
ajax.responseXML   返迴文檔,document格式
ajax.responseType    指定返回格式       可以加:"Text" "bold" "document" "json"

ajax傳遞數據

uri 統一資源標示符(Uniform Resource Identifier)

url 統一資源標示符(Uniform Resource Locator)

url(一個資源在互聯網中的唯一標示)是uri的一種

/add?id={{item.id}} ?後面是數據獲取 false 同步 true 非同步(預設為非同步)

  • get方式


    ajax.open("get","/ajax?name=zhang")
    ajax.send()
  • post方式

    ajax.open('post','/',true,user,passwd)

    第一個參數指定獲取格式,第二個制定路徑(從哪獲取),第三個制定同步或非同步(true=>非同步、預設為非同步false=>同步),第四個是用戶名,最後一個是密碼


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

-Advertisement-
Play Games
更多相關文章
  • 在Xcode里下載模擬器,速度實在是太慢了。點擊下載,卡住十幾分鐘才開始下載,並且龜速進行。解決方案:獲取模擬器下載地址,自己選擇下載器進行下載。找到下載鏈接打開 Console.app(蘋果電腦自帶的一個程式),點擊“Clear”按鈕來清空log。打開 Xcode - Preferences - ... ...
  • addGestureRecognizer(_:) 一個手勢對象只綁定一個view// 只有最後一個imgv有點擊事件 let tap = UITapGestureRecognizer(target: self, action: #selector(selectedItem(_:))) for img... ...
  • Javascript中有六種數據類型 1、undefined:這個值未定義 2、boolean:這個值是布爾值 3、number:這個值是數值 4、function:這個值是函數 5、object:這個值是對象或者null,數組也可以(var e=[.......]) 6、string:這個值是字元 ...
  • 2019,不管是不是VR元年,VR行業確實在這一年勢頭凶猛,VR設備跨越式發展,然而VR內容確相對滯後。強調獨占性的各大VR內容平臺,更是將開發商分割成了不同的陣營。 ...
  • electron-vue 開發環境搭建(Windows環境) ...
  • 標題寫的全面一些,方便其他人檢索,我就是找了半天找不到資料,最後自己搞定了。 原理: 每次監聽到輸入值變化,就打一個時間戳,然後暫停2秒再去提交post驗證。 但是每次提交前,判斷一下之前打的時間戳和現在時間是否大於2秒,如果大於,則真去提交post,否則return掉不執行。 以下是代碼片段: ...
  • HTML: JS: start:就為你選擇的開始日期; end:就為你選擇的結束日期 此方式可選擇任意範圍的時間,時間格式可任意修改。 註:如果照片看不清,可以將網頁適當放大,以便觀看—謝謝。 ...
  • npm是Node Package Manager,也就是長說的NPM包管理器. 一般安裝node.js就會一起安裝. npm install npm install XXX //表示安裝模塊, 預設會安裝最新的安裝包 npm install [email protected] //表示安裝指定版本的安裝包,安裝完成 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...