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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...