jQuery常用的一些知識點總結

慕斯不想說話發表於2018-10-28

一、jQuery物件和dom物件的互換

//將jquey物件轉換為dom物件

var $cr=$("#cr");//jquery物件
var cr=$cr[0];//dom物件
複製程式碼

//將dom物件那個轉換為jquery物件

var cr=document.getElementById("cr");//dom物件
var $cr=$(cr)//jquery物件
複製程式碼

二、判斷check核取方塊是否被勾選

//dom方式判斷是否選中

if(cr.checked)
複製程式碼

//jquery方式判斷是否選中

if($cr.is(":checked"))
複製程式碼

三、過濾選擇器

//不能使用if($("#tt"))是否存在,應該使用if($("#tt").length>0)或者是if($("#tt")[0])
1、基本過濾選擇器
  $("div:first"),$("div:last"),$("div:first"),$("div:not(.myclass)");
  $("div:even"),$("div:odd"),$("div:gt/lt/eq(index)"),$("div:last");
  $(":header");//獲取所有的標題元素
  $(":animated"),$(":focus");
2、內容過濾選擇器
  $("div:contains('我')")//文字中含有我的元素
  $("div:empty")//選取不含子元素(包括文字元素)的div元素
  $("div:has('p')")//選取含有p元素的div元素
  :has(selector)
  $("tbody>tr:has(':checked')").addClass(“selected”):表格中單選框被選中的話變顏色。
  $("div:has('.p')")//選取class為p的div元素
  $("div:parent")//選取含有子元素(包括文字元素)的div元素
3、可見性過濾選擇器
  $("div:hidden"),$("div:visible")
4、屬性過濾選擇器
  $("div[title=test]")//獲取title=test的div元素
5、子元素過濾選擇器
  $("li:nth-child(2n)")
6、表單物件屬性過濾選擇器
  $("input:enabled"),獲取所有可用元素;
  $("input:disabled"),獲取所有不可用元素。
  $("input:checked"):獲取所有被選中的元素(單選框、核取方塊)
  $("select option:selected")獲取所有被選中的元素(下拉選單)
  //注意:選擇器空格與不空格的區別
  $("form:enabled")//表示可用的form元素
  $("form :form")//表示form中可用的元素
7、表單選擇器
  $(":input")//包括textarea,selection等元素
  $(":text"),$(":radio"),$(":image"),$(":reset"),$(":button"),$(":file")
複製程式碼

四、刪除節點

  remove():該節點包含的左右的後代節點也會被刪除。$("#div").remove()返回的是該元素
  detach():與remove不一樣的是:所有繫結的事件,附加的資料都會被儲存下來。
  empty():清空該元素的所有後代節點。
複製程式碼

五、複製節點

  clone(true):引數true的目的是為了在複製元素的同時也複製元素所繫結的事件,因此該元素的副本也有複製的功能。
複製程式碼

六、替換節點

  replaceWith();replaceAll();	元素被替換元素繫結的事件也需要重新繫結。
複製程式碼

七、包裹節點

  wrap():$("p").wrap("b")用b標籤把p標籤包裹起來。只包裹一個
  wrapAll():$("p").wrap("b")包裹所有的p元素。
  wrapInner():$("p").wrapInner("b")p標籤裡的內容被b標籤包裹起來了。
複製程式碼

八:屬性和樣式操作

  1、設定和刪除屬性:
  $("div").attr(),$("div").removeAttr();
  2、切換樣式
  toggleClass("class")://沒有class類時則新增,有時則刪除。
  hasClass(),removeClass()
複製程式碼

九、設定和獲取HTML、文字和值

    html()、text()、val()
複製程式碼

十、遍歷節點

  children(),
  next():後面緊鄰的同輩元素。
  prev():前面緊鄰的同輩元素。
  siblings():前後所有的同輩元素。
  closest():獲取最近的匹配元素。
  $("div").height()/width()獲取的是高度值/寬度值,css("height")獲取的是帶有單位的資料。
複製程式碼

十一、元素定位

  offset():獲取的是元素在當前視窗的相對偏移。返回的物件包含兩個屬性left和top屬性。
  position():獲取的是元素相對最近一個position樣式是relative或者absolute的祖父節點的偏移。將所有的祖先元素偏移加起來的值
  scrollTop(),scrollLeft():獲取元素距頂端和左邊的距離。
複製程式碼

十二、合成事件

  hover():用於模擬游標懸停事件hover(mouseenter,mouseleave)
  toggle():模擬滑鼠連續單擊事件。切換元素的可見狀態。
複製程式碼

十三、事件冒泡

  停止事件冒泡:event.stopPropagation()
  阻止預設行為:event.preventDefault()
  return false;具有上面兩種方法的功能。
複製程式碼

十四、事件物件屬性

    event.type,event.target,event.which(獲取滑鼠左中右鍵),event.pageX,event.pageY
複製程式碼

十五、模擬操作

  $("#btn").trigger("click")=$("#btn").click():當頁面載入完畢後,就會立即出發click事件。
  觸發自定義事件:
  $("#btn").bind("myclick",function(event,msg1,msg2){});//繫結事件
  $("#btn").trigger("myclick",["s1","s2"])//觸發事件,還可以傳遞資料
複製程式碼

十六、動畫

  show(),hide():先記住display的值,在改變display的值。//改變元素的顯示還是隱藏。
  fadeIn():透明度漸漸變為1,fadeOut():透明度漸漸變為0.:改變元素的透明度。fadeToggle()
  slideUp(),slideDown():改變元素的高度。slideToggle()
      累加、累減動畫:$("panel").click(function(){
    $(this).animate({left:"+=500px"},300)
    $(this).animate({left:"100px",height:"200px"},3000)
  })
  停止動畫:stop():停止正在進行的動畫。
  延遲動畫:delay(1000)
複製程式碼

十七、ajax

  load(url,data,callback):遠端載入html程式碼並載入到dom中.$("#test").load("test.html")
  load("test.html .para")載入text.html中class為para的內容
  load(url,{"a":1,"b":2},function(){})//post請求方式
  getScript(),getJson()//載入json檔案
  $.ajax()//是jquery最底層的Ajax實現
複製程式碼

十八:序列化元素

  1、serialize()//作用於一個jquery物件,將dom元素內容序列化為字串:$("#form1").serialize(),將單選框和核取方塊的序列化時,
  只會將他們的值序列化。
  2、serializeArray():作用於一個jquery物件,將dom元素內容序列化為json。
  3、$.param():是serialize()的核心,將陣列或物件按照key/value進行序列化。
     var obj={"a":1,"b":2};
     var k=$.param(obj);
     console.log(k)///輸出:"a=1&b=2"
複製程式碼

相關文章