å端 jQuery
jQueryå¿«éå ¥é¨
jQuery
ããjQueryä»ç»
ãããã1.jQueryæ¯ä¸ä¸ªè½»é级çãå ¼å®¹å¤æµè§å¨çJavaScriptåºã
ãããã2.jQueryä½¿ç¨æ·è½å¤æ´æ¹ä¾¿å°å¤çHTML DocumentãEventsãå®ç°å¨ç»ææãæ¹ä¾¿å°è¿è¡Ajax交äºï¼è½å¤æå¤§å°ç®åJavaScriptç¼ç¨ãå®ç宿¨å°±æ¯ï¼âWrite less, do more.â
ãããã
ããjQueryçä¼å¿
- 䏿¬¾è½»é级çJSæ¡æ¶ãjQueryæ ¸å¿jsæä»¶æå åkbï¼ä¸ä¼å½±å页é¢å è½½é度ã
- 丰å¯çDOMéæ©å¨,jQueryçéæ©å¨ç¨èµ·æ¥å¾æ¹ä¾¿ï¼æ¯å¦è¦æ¾å°æä¸ªDOM对象çç¸é»å ç´ ï¼JSå¯è½è¦å好å è¡ä»£ç ï¼èjQueryä¸è¡ä»£ç å°±æå®äºï¼åæ¯å¦è¦å°ä¸ä¸ªè¡¨æ ¼çéè¡åè²ï¼jQuery乿¯ä¸è¡ä»£ç æå®ã
- é¾å¼è¡¨è¾¾å¼ãjQueryçé¾å¼æä½å¯ä»¥æå¤ä¸ªæä½åå¨ä¸è¡ä»£ç éï¼æ´å ç®æ´ã
- äºä»¶ãæ ·å¼ãå¨ç»æ¯æãjQueryè¿ç®åäºjsæä½cssç代ç ï¼å¹¶ä¸ä»£ç çå¯è¯»æ§ä¹æ¯jsè¦å¼ºã
- Ajaxæä½æ¯æãjQueryç®åäºAJAXæä½ï¼å端åªéè¿åä¸ä¸ªJSONæ ¼å¼çå符串就è½å®æä¸å端çéä¿¡ã
- è·¨æµè§å¨å ¼å®¹ãjQueryåºæ¬å ¼å®¹äºç°å¨ä¸»æµçæµè§å¨ï¼ä¸ç¨å为æµè§å¨çå ¼å®¹é®é¢è伤éèçã
- æä»¶æ©å±å¼åãjQueryæç丰å¯çç¬¬ä¸æ¹çæä»¶ï¼ä¾å¦ï¼æ å½¢èåãæ¥ææ§ä»¶ãå¾ç忢æä»¶ãå¼¹åºçªå£ççåºæ¬å端页é¢ä¸çç»ä»¶é½æå¯¹åºæä»¶ï¼å¹¶ä¸ç¨jQueryæä»¶ååºæ¥çææå¾ç«ï¼å¹¶ä¸å¯ä»¥æ ¹æ®èªå·±éè¦å»æ¹ååå°è£ æä»¶ï¼ç®åå®ç¨ã
ãããããã
ããããããåçDOMç忳就æ¯åJS代ç ï¼è以åæä»¬å¤æ°é½ç¨jQueryæ¥åï¼å 为jQueryçä¼å¿å¾å¤ï¼çä¸é¢ï¼å¹¶ä¸æ¥æ¾æ ç¾çæ¹å¼æå¾å¤ï¼æ¯åççDOM丰å¯çå¤ï¼å¾ä¾¿å©ï¼è¿æéè¦çä¸ç¹å°±æ¯ä¸éè¦èèæµè§å¨çå ¼å®¹æ§ï¼å 为jQueryåå°äºå大æµè§å¨å ¼å®¹çåè½ã
ããjQueryå 容ï¼
- éæ©å¨
- çéå¨
- æ ·å¼æä½
- ææ¬æä½
- 屿§æä½
- ææ¡£å¤ç
- äºä»¶
- å¨ç»ææ
- æä»¶
- eachãdataãAjax
ããããä¸è½½é¾æ¥ï¼jQueryå®ç½ï¼é¦å éè¦ä¸è½½è¿ä¸ªjQueryçæä»¶ï¼ç¶åå¨HTMLæä»¶ä¸å¼å ¥è¿ä¸ªæä»¶ï¼å°±å¯ä»¥ä½¿ç¨è¿ä¸ªæä»¶ä¸å¸®æä»¬æä¾çjqueryçæ¥å£äºã
ããããä¸æææ¡£ï¼jQuery APä¸æææ¡£
ãããã
ããããããç¨å缩çä¹è¡ï¼ä¸ç¨å缩çä¹è¡ï¼æä»¶é½ä¸å¤§ï¼å¯¹é¡µé¢å 容çå è½½é度差ç䏿¯å¾å¤ï¼å¦ææä»¶å¤§å¾å¤ï¼å°±èèå缩ççï¼ä¸è¬çº¿ä¸é½æ¯å缩ççï¼å°½éæé«é¡µé¢å è½½é度ã
ãããããjQueryçå¼å ¥æ¹å¼æä¸¤ç§ï¼
ãããããã1.ç´æ¥ä¸è½½æä»¶å°æ¬å°ï¼æå¸¸ç¨ï¼ï¼ä»æ¬å°ä¸å¯¼å ¥
ãããããã2.ä½¿ç¨æä»¶çç½ç»å°åï¼å°±åæä»¬imgæ ç¾éé¢çé£ä¸ªsrcçç¨æ³å·®ä¸å¤ã
ããããå¼å ¥å®ä¹åï¼å°±å¯ä»¥ç´æ¥ä½¿ç¨jQueryçè¯æ³æ¥åäºï¼ä½æ¯è¿æ¯è¦åå¨scriptæ ç¾éé¢ï¼å¹¶ä¸è¦æ³¨æå¼å ¥é¡ºåºï¼å å¼å ¥æä»¶ï¼åå¨scriptæ ç¾éé¢åjQueryç代ç ï¼å å¯¼å ¥å使ç¨ã
ãããããã
ãããããã伿¥éï¼å¨æµè§å¨çè°è¯çªå£çconsoleéé¢å¯ä»¥çå°ï¼è®°ä½è¿ä¸ªæï¼ä»¥ååºç°è¿ä¸ªé误ï¼ä¸è½é®æ~~~
ãããããããã
ããjQueryçæ¬
- 1.xï¼å ¼å®¹IE678,ä½¿ç¨æä¸ºå¹¿æ³çï¼å®æ¹åªåBUGç»´æ¤ï¼åè½ä¸åæ°å¢ãå æ¤ä¸è¬é¡¹ç®æ¥è¯´ï¼ä½¿ç¨1.xçæ¬å°±å¯ä»¥äºï¼æç»çæ¬ï¼1.12.4 (2016å¹´5æ20æ¥)
- 2.xï¼ä¸å ¼å®¹IE678ï¼å¾å°æäººä½¿ç¨ï¼å®æ¹åªåBUGç»´æ¤ï¼åè½ä¸åæ°å¢ã妿ä¸èèå ¼å®¹ä½çæ¬çæµè§å¨å¯ä»¥ä½¿ç¨2.xï¼æç»çæ¬ï¼2.2.4 (2016å¹´5æ20æ¥)
- 3.xï¼ä¸å ¼å®¹IE678ï¼åªæ¯æææ°çæµè§å¨ãéè¦æ³¨æçæ¯å¾å¤èçjQueryæä»¶ä¸æ¯æ3.xçãç®åè¯¥çæ¬æ¯å®æ¹ä¸»è¦æ´æ°ç»´æ¤ççæ¬ï¼æä»¬å¦ä¹ å°±ç¨3.å çå°±è¡äºï¼å·¥ä½ä¸å¦æéè¦å ¼å®¹IE678ï¼å°±ç¨1.å çæ¬çå°±è¡ï¼2.å çæ¬çå°±å«ç¨äºã
ããããç»´æ¤IE678æ¯ä¸ä»¶è®©äººå¤´ç¼çäºæ ï¼ä¸è¬æä»¬é½ä¼é¢å¤å è½½ä¸ä¸ªCSSåJSåç¬å¤çãå¼å¾åºå¹¸çæ¯ä½¿ç¨è¿äºæµè§å¨ç人ä¹éæ¥åå°ï¼PCç«¯ç¨æ·å·²ç»éæ¥è¢«ç§»å¨ç«¯ç¨æ·æå代ï¼å¦ææ²¡æç¹æ®è¦æ±çè¯ï¼ä¸è¬é½ä¼éæ©æ¾å¼å¯¹678çæ¯æã
ããjQuery对象ï¼å çä¸ä¸jQueryè¯æ³å鿩卿们å忥çè¿ä¸ªå¯¹è±¡ï¼
ããããjQuery对象就æ¯éè¿jQueryå è£ DOM对象å产çç对象ãjQueryå¯¹è±¡æ¯ jQueryç¬æçã妿ä¸ä¸ªå¯¹è±¡æ¯ jQuery对象ï¼é£ä¹å®å°±å¯ä»¥ä½¿ç¨jQueryéæä¾çæ¹æ³ï¼ä¾å¦$(â#i1â).html()ã
ãããã$("#i1").html()
çæææ¯ï¼è·åidå¼ä¸º i1
çå
ç´ çhtml代ç ãå
¶ä¸ html()
æ¯jQueryéçæ¹æ³ã
ããããç¸å½äºï¼ document.getElementById("i1").innerHTML;
ããããè½ç¶ jQuery对象
æ¯å
è£
DOM对象
å产ççï¼ä½æ¯ jQuery对象
æ æ³ä½¿ç¨ DOM对象
ç任使¹æ³ï¼åç DOM对象
乿²¡ä¸è½ä½¿ç¨ jQuery
éçæ¹æ³ã
ããããä¸ä¸ªçº¦å®ï¼æä»¬å¨å£°æä¸ä¸ªjQuery对象åéçæ¶åå¨åéååé¢å ä¸$ï¼
var $variable = jQuery对å var variable = DOM对象 $variable[0]//jQuery对象转æDOM对象ï¼éè¿ä¸ä¸ªjQuery对象+[0]ç´¢å¼é¶ï¼å°±åæäºDOM对象ï¼å°±å¯ä»¥ä½¿ç¨JSçä»£ç æ¹æ³äºï¼DOMå¯¹è±¡è½¬æ¢æjQuery对象ï¼$(DOM对象)ï¼éè¿$符å·å 裹ä¸ä¸å°±å¯ä»¥äº
ããããæ¿ä¸é¢é£ä¸ªä¾å举ä¾ï¼jQuery对象åDOM对象ç使ç¨ï¼
$("#i1").html();//jQuery对象å¯ä»¥ä½¿ç¨jQueryçæ¹æ³ $("#i1")[0].innerHTML;// DOM对象使ç¨DOMçæ¹æ³
ãããã
jQueryåºç¡è¯æ³
ãã$(selector).action() #$(selector)æ¾å°æä¸ªæ ç¾ï¼.action()éè¿è¿ä¸ªæ ç¾å¯¹è±¡è°ç¨å®çä¸äºæ¹æ³ã
ãããã
ããæ¥æ¾æ ç¾
ããããåºæ¬éæ©å¨ï¼åcssï¼
ããããããidéæ©å¨ï¼
$("#id") #ä¸ç®¡æ¾ä»ä¹æ ç¾ï¼ç¨ä»ä¹éæ©å¨ï¼é½å¿ é¡»è¦å$("")ï¼å¼å·éé¢ååéæ©å¨ï¼éè¿jQueryæ¾å°çæ ç¾å¯¹è±¡å°±æ¯ä¸ä¸ªjQuery对象ï¼ç¨åçJSæ¾å°çæ ç¾å¯¹è±¡å«åDOM对象ï¼çæä»¬ä¸é¢çjQuery对象é¨åçå 容
ããããããæ ç¾éæ©å¨ï¼
$("tagName")
ããããããclasséæ©å¨ï¼
$(".className")
ããããããé å使ç¨ï¼
$("div.c1") // æ¾å°æc1 classç±»çdivæ ç¾
ããããããææå ç´ éæ©å¨ï¼
$("*")
ããããããç»åéæ©å¨ï¼
$("#id, .className, tagName")
ããããå±çº§éæ©å¨ï¼ï¼åcssï¼
ããããããxåyå¯ä»¥ä¸ºä»»æéæ©å¨
$("x y");// xçææå代yï¼ååååï¼ $("x > y");// xçææå¿åyï¼å¿åï¼ $("x + y")// æ¾å°ææç´§æ¨å¨xåé¢çy $("x ~ y")// xä¹åææçå å¼y
ããããåºæ¬çéå¨ï¼éæ©ä¹åè¿è¡è¿æ»¤ï¼ï¼
:first // 第ä¸ä¸ª :last // æåä¸ä¸ª :eq(index)// ç´¢å¼çäºindexçé£ä¸ªå ç´ :even // å¹é ææç´¢å¼å¼ä¸ºå¶æ°çå ç´ ï¼ä» 0 å¼å§è®¡æ° :odd // å¹é ææç´¢å¼å¼ä¸ºå¥æ°çå ç´ ï¼ä» 0 å¼å§è®¡æ° :gt(index)// å¹é ææå¤§äºç»å®ç´¢å¼å¼çå ç´ :lt(index)// å¹é ææå°äºç»å®ç´¢å¼å¼çå ç´ :not(å ç´ éæ©å¨)// ç§»é¤æææ»¡è¶³notæ¡ä»¶çæ ç¾ :has(å ç´ éæ©å¨)// éåææå å«ä¸ä¸ªæå¤ä¸ªæ ç¾å¨å ¶å çæ ç¾(æçæ¯ä»å代å ç´ æ¾)
ããããããä¾åï¼
ãããã
ãããã
$("div:has(h1)")// æ¾å°ææå代䏿h1æ ç¾çdivæ ç¾ï¼æææ¯é¦å æ¾å°æædivæ ç¾ï¼æè¿äºdivæ ç¾çå代䏿h1çdivæ ç¾çéåºæ¥ $("div:has(.c1)")// æ¾å°ææå代䏿c1æ ·å¼ç±»ï¼ç±»å±æ§class='c1'ï¼çdivæ ç¾ $("li:not(.c1)")// æ¾å°ææä¸å å«c1æ ·å¼ç±»çliæ ç¾ $("li:not(:has(a))")// æ¾å°ææå代ä¸ä¸å«aæ ç¾çliæ ç¾
ããããããç»ä¹ ï¼å çä¸ä¸ªjQueryçclickäºä»¶ç»å®ï¼ï¼
ããããããããèªå®ä¹æ¨¡ææ¡ï¼ä½¿ç¨jQueryå®ç°å¼¹åºåéèåè½ãjQueryçèªå®ä¹æ¨¡ææ¡:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>èªå®ä¹æ¨¡ææ¡</title> <style> .cover { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: darkgrey; z-index: 999; } .modal { width: 600px; height: 400px; background-color: white; position: fixed; left: 50%; top: 50%; margin-left: -300px; margin-top: -200px; z-index: 1000; } .hide { display: none; } </style> </head> <body> <input type="button" value="å¼¹" id="i0"> <div class="cover hide"></div> <div class="modal hide"> <label for="i1">å§å</label> <input id="i1" type="text"> <label for="i2">ç±å¥½</label> <input id="i2" type="text"> <input type="button" id="i3" value="å ³é"> </div> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> var tButton = $("#i0")[0]; tButton.onclick=function () { #jQueryç»å®äºä»¶çæ¶åä¹æä¸ªç®åçæ¹å¼ï¼å¾åé¢å¦ var coverEle = $(".cover")[0]; var modalEle = $(".modal")[0]; $(coverEle).removeClass("hide"); $(modalEle).removeClass("hide");
ãã
#jQueryçï¼
#$(".cover,.modal").removeClass('hide'); #çå®è¿ä¸ªä¹åï¼å»ä¸é¢å å¦ä¸ä¸ä¸é¢çæ ç¾æä½ä¸çæ ·å¼æä½é£ä¸è
}; var cButton = $("#i3")[0]; cButton.onclick=function () { var coverEle = $(".cover")[0]; var modalEle = $(".modal")[0]; $(coverEle).addClass("hide"); $(modalEle).addClass("hide");
ãã#jQueryçï¼
ãã#$(".cover,.modal").addClass('hide');
} </script> </body> </html>
ãããã屿§éæ©å¨ï¼
[attribute] [attribute=value]// 屿§çäº [attribute!=value]// 屿§ä¸çäº
ãããããã
ãããããã
ããããããä¾åï¼
// 示ä¾,å¤ç¨äºinputæ ç¾ <input type="text"> <input type="password"> <input type="checkbox"> $("input[type='checkbox']");// åå°checkboxç±»åçinputæ ç¾ $("input[type!='text']");// åå°ç±»å䏿¯textçinputæ ç¾
ãããã表åçéå¨ï¼å¤ç¨äºæ¾form表åéé¢åºç°çinputæ ç¾ï¼å½ç¶éè¿å±æ§éæ©å¨æ¾è¯å®ä¹æ¯æ²¡é®é¢çï¼è¿æ ·å°±æ¯åçç®åä¸äºï¼ï¼
:text
:password
:file
:radio
:checkbox
:submit
:reset
:button
ããããããä¾åï¼
$(":checkbox") // æ¾å°ææçcheckbox
ãããããã表åå¯¹è±¡å±æ§:
:enabled
:disabled
:checked
:selected
ããããæ³¨æcheckedï¼
ãããããã
ãã
ããããå ¶ä»ä¾åï¼
ããããããããæ¾å°å¯ç¨çinputæ ç¾
<form> <input name="email" disabled="disabled" /> <input name="id" /> </form> $("input:enabled") // æ¾å°å¯ç¨çinputæ ç¾
ããããããããæ¾å°è¢«éä¸çoptionï¼
<select id="s1"> <option value="beijing">å京å¸</option> <option value="shanghai">䏿µ·å¸</option> <option selected value="guangzhou">广å·å¸</option> <option value="shenzhen">æ·±å³å¸</option> </select> $(":selected") // æ¾å°ææè¢«éä¸çoption
çé卿¹æ³ï¼å°æ¥ç¨çå¾å¤ï¼
ãã鿩卿è çéå¨éæ©åºæ¥ç齿¯å¯¹è±¡ï¼èçé卿¹æ³å ¶å®å°±æ¯éè¿å¯¹è±¡æ¥è°ç¨ä¸ä¸ªè¿ä¸æ¥è¿æ»¤ä½ç¨çæ¹æ³ï¼åå¨å¯¹è±¡åé¢å æ¬å·ï¼ä¸åæ¯åå¨éæ©å¨éé¢çäºã
ããä¸ä¸ä¸ªå ç´ ï¼
$("#id").next() $("#id").nextAll() $("#id").nextUntil("#i2") #ç´å°æ¾å°id为i2çæ ç¾å°±ç»ææ¥æ¾ï¼ä¸å å«å®
ãã
ãã
ããå 两个id屿§ä½ä¸ºä¸ä¼çéçæ¶åçåºåï¼
ãã
ããä¸ä¸ä¸ªå ç´ ï¼
$("#id").prev() $("#id").prevAll() $("#id").prevUntil("#i2")
ãã
ããç¶äº²å ç´ ï¼
$("#id").parent() $("#id").parents() // æ¥æ¾å½åå ç´ çææçç¶è¾å ç´ ï¼ç·ç·è¾ãç¥å è¾é½æ¾å°ï¼
$("#id").parentsUntil('body') // æ¥æ¾å½åå ç´ çææçç¶è¾å ç´ ï¼ç´å°éå°å¹é çé£ä¸ªå ç´ ä¸ºæ¢ï¼è¿éç´å°bodyæ ç¾ï¼ä¸å å«bodyæ ç¾ï¼åºæ¬éæ©å¨é½å¯ä»¥æ¾å°è¿éé¢ä½¿ç¨ã
ããå¿ååå å¼å ç´ ï¼
$("#id").children();// å¿å们 $("#id").siblings();// å å¼ä»¬ï¼ä¸å å«èªå·±ï¼.siblings('#id')ï¼å¯ä»¥å¨æ·»å éæ©å¨è¿è¡è¿ä¸æ¥çé
ããæ¥æ¾
ããããæç´¢ææä¸æå®è¡¨è¾¾å¼å¹é çå ç´ ãè¿ä¸ªå½æ°æ¯æ¾åºæ£å¨å¤ççå ç´ çå代å ç´ çå¥½æ¹æ³ã
$("div").find("p")
ããããçä»·äº$("div p")
ãããã
ããçé
ããããçéåºä¸æå®è¡¨è¾¾å¼å¹é çå ç´ éåãè¿ä¸ªæ¹æ³ç¨äºç¼©å°å¹é çèå´ãç¨éå·åéå¤ä¸ªè¡¨è¾¾å¼ã
$("div").filter(".c1") // ä»ç»æéä¸è¿æ»¤åºæc1æ ·å¼ç±»çï¼ä»ææçdivæ ç¾ä¸è¿æ»¤åºæclass='c1'屿§çdivï¼åfindä¸åï¼findæ¯æ¾divæ ç¾çåååå䏿¾å°ä¸ä¸ªç¬¦åæ¡ä»¶çæ ç¾
ããããçä»·äº $("div.c1")
ããè¡¥å ï¼ååé¢ä½¿ç¨åå·ç䏿 · :firstçï¼åªä¸è¿åå·çé£ä¸ªæ¯åå¨éæ©å¨éé¢çï¼èä¸é¢çè¿å ä¸ªæ¯æ¹æ³ï¼å¦æ¤èå·²ï¼å°±ä¸è¯´å¦ï¼ï¼
.first() // è·åå¹é ç第ä¸ä¸ªå ç´ .last() // è·åå¹é çæåä¸ä¸ªå ç´ .not() // ä»å¹é å ç´ çéåä¸å é¤ä¸æå®è¡¨è¾¾å¼å¹é çå ç´ .has() // ä¿çå å«ç¹å®å代çå ç´ ï¼å»æé£äºä¸å«ææå®å代çå ç´ ã .eq() // ç´¢å¼å¼çäºæå®å¼çå ç´
ãã示ä¾ï¼å·¦ä¾§èå示ä¾ï¼ä¹æ¯ä»å¤©çä½ä¸å¦ï¼è¦çæææ¯ä¸é¢è¿æ ·çï¼
ãã
ãã大家ä»å¤©å°±å å¦å°è¿éï¼æå¤©å¨ç»§ç»å§~~
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>左侧èå示ä¾</title> <style> .left { position: fixed; left: 0; top: 0; width: 20%; height: 100%; background-color: rgb(47, 53, 61); } .right { width: 80%; height: 100%; } .menu { color: white; } .title { text-align: center; padding: 10px 15px; border-bottom: 1px solid #23282e; } .items { background-color: #181c20; } .item { padding: 5px 10px; border-bottom: 1px solid #23282e; } .hide { display: none; } </style> </head> <body> <div class="left"> <div class="menu"> <div class="title">èåä¸</div> <div class="items"> <div class="item">111</div> <div class="item">222</div> <div class="item">333</div> </div> <div class="title">èåäº</div> <div class="items hide"> <div class="item">111</div> <div class="item">222</div> <div class="item">333</div> </div> <div class="title">èåä¸</div> <div class="items hide"> <div class="item">111</div> <div class="item">222</div> <div class="item">333</div> </div> </div> </div> <div class="right"></div> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $(".title").click(function (){ // jQueryç»å®äºä»¶ // éèææclasséæ.itemsçæ ç¾ $(".items").addClass("hide"); //æ¹éæä½ $(this).next().removeClass("hide"); }); </script>
ããä¸ååæ³ï¼
ãã
ãã
ããä¸å¥è¯çåæ³ï¼
ãã
æä½æ ç¾
ããæ ·å¼æä½
ããããæ ·å¼ç±»ï¼æ·»å å é¤classç±»ç弿¥ä¿®æ¹æ ·å¼ï¼
addClass();// æ·»å æå®çCSSç±»åã removeClass();// ç§»é¤æå®çCSSç±»åã hasClass();// å¤ææ ·å¼åä¸åå¨ toggleClass();// 忢CSSç±»åï¼å¦ææå°±ç§»é¤ï¼å¦ææ²¡æå°±æ·»å ã
ãããããããã
ãããããããã
ãããã示ä¾ï¼å¼å ³ç¯åæ¨¡ææ¡
ããããCSSï¼ç´æ¥ä¿®æ¹cssç屿§æ¥ä¿®æ¹æ ·å¼ï¼
css("color","red")//DOMæä½ï¼tag.style.color="red"
ãããã示ä¾ï¼
$("p").css("color", "red"); //å°ææpæ ç¾çåä½è®¾ç½®ä¸ºçº¢è²
ãããã
ããä½ç½®æä½
offset()// è·åå¹é å ç´ å¨å½åçªå£çç¸å¯¹åç§»æè®¾ç½®å ç´ ä½ç½® position()// è·åå¹é å ç´ ç¸å¯¹ç¶å ç´ çåç§»ï¼ä¸è½è®¾ç½®ä½ç½® $(window).scrollTop() //æ»è½®åä¸ç§»å¨çè·ç¦» $(window).scrollLeft() //æ»è½®å左移å¨çè·ç¦»
ãããã.offset()
æ¹æ³å
许æä»¬æ£ç´¢ä¸ä¸ªå
ç´ ç¸å¯¹äºææ¡£ï¼documentï¼çå½åä½ç½®ã
ããããå .position()
çå·®å«å¨äºï¼ .position()è·åç¸å¯¹äºå®æè¿çå
·æç¸å¯¹ä½ç½®(position:relativeæposition:absolute)çç¶çº§å
ç´ çè·ç¦»ï¼å¦ææ¾ä¸å°è¿æ ·çå
ç´ ï¼åè¿åç¸å¯¹äºæµè§å¨çè·ç¦»ã
çä¾åï¼
ãããããã
ããããéè¿offset设置ä½ç½®åç§»
ãããããã
ãããã
ãããã示ä¾ï¼è¿åé¡¶é¨ç¤ºä¾ï¼
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ä½ç½®ç¸å ³ç¤ºä¾ä¹è¿åé¡¶é¨</title> <style> .c1 { width: 100px; height: 200px; background-color: red; } .c2 { height: 50px; width: 50px; position: fixed; bottom: 15px; right: 15px; background-color: #2b669a; } .hide { display: none; } .c3 { height: 100px; } </style> </head> <body> <button id="b1" class="btn btn-default">ç¹æ</button> <div class="c1"></div> <div class="c3">1</div> <div class="c3">2</div> <div class="c3">3</div> <div class="c3">4</div> <div class="c3">5</div> <div class="c3">6</div> <div class="c3">7</div> <div class="c3">8</div> <div class="c3">9</div> <div class="c3">10</div> <div class="c3">11</div> <div class="c3">12</div> <div class="c3">13</div> <div class="c3">14</div> <div class="c3">15</div> <div class="c3">16</div> <div class="c3">17</div> <div class="c3">18</div> <div class="c3">19</div> <div class="c3">20</div> <div class="c3">21</div> <div class="c3">22</div> <div class="c3">23</div> <div class="c3">24</div> <div class="c3">25</div> <div class="c3">26</div> <div class="c3">27</div> <div class="c3">28</div> <div class="c3">29</div> <div class="c3">30</div> <div class="c3">31</div> <div class="c3">32</div> <div class="c3">33</div> <div class="c3">34</div> <div class="c3">35</div> <div class="c3">36</div> <div class="c3">37</div> <div class="c3">38</div> <div class="c3">39</div> <div class="c3">40</div> <div class="c3">41</div> <div class="c3">42</div> <div class="c3">43</div> <div class="c3">44</div> <div class="c3">45</div> <div class="c3">46</div> <div class="c3">47</div> <div class="c3">48</div> <div class="c3">49</div> <div class="c3">50</div> <div class="c3">51</div> <div class="c3">52</div> <div class="c3">53</div> <div class="c3">54</div> <div class="c3">55</div> <div class="c3">56</div> <div class="c3">57</div> <div class="c3">58</div> <div class="c3">59</div> <div class="c3">60</div> <div class="c3">61</div> <div class="c3">62</div> <div class="c3">63</div> <div class="c3">64</div> <div class="c3">65</div> <div class="c3">66</div> <div class="c3">67</div> <div class="c3">68</div> <div class="c3">69</div> <div class="c3">70</div> <div class="c3">71</div> <div class="c3">72</div> <div class="c3">73</div> <div class="c3">74</div> <div class="c3">75</div> <div class="c3">76</div> <div class="c3">77</div> <div class="c3">78</div> <div class="c3">79</div> <div class="c3">80</div> <div class="c3">81</div> <div class="c3">82</div> <div class="c3">83</div> <div class="c3">84</div> <div class="c3">85</div> <div class="c3">86</div> <div class="c3">87</div> <div class="c3">88</div> <div class="c3">89</div> <div class="c3">90</div> <div class="c3">91</div> <div class="c3">92</div> <div class="c3">93</div> <div class="c3">94</div> <div class="c3">95</div> <div class="c3">96</div> <div class="c3">97</div> <div class="c3">98</div> <div class="c3">99</div> <div class="c3">100</div> <button id="b2" class="btn btn-default c2 hide">è¿åé¡¶é¨</button> <script src="jquery-3.2.1.min.js"></script> <script> //$("#b1").on("click", function () { // $(".c1").offset({left: 200, top:200}); //}); // $(window),window对象æ¯è¿è®°å¾åï¼æ¯ä¸æ¯å ¨å±çä¸ä¸ªå¯¹è±¡åï¼æ´ä¸ªé¡µé¢çªå£å¯¹è±¡ï¼éè¿$符å·å 裹起æ¥å°±åæäºä¸ä¸ªjQueryå¯¹è±¡äº $(window).scroll(function () { if ($(window).scrollTop() > 100) { //彿»å¨æ¡ç¸å¯¹é¡¶é¨ä½ç½®çæ»å¨è·ç¦»å¤§äº100çæ¶åææ¾ç¤ºé£ä¸ªè¿åé¡¶é¨çæé®ï¼è¿ä¸ª100ä½ å¯ä»¥ç解为çªå£åæ´ä¸ªé¡µé¢ææ¡£çè·ç¦»ï¼é¼ æ å䏿»å¨çè·ç¦» $("#b2").removeClass("hide"); }else { $("#b2").addClass("hide"); } }); $("#b2").on("click", function () { //jQueryç»å®äºä»¶ç¬¬äºå¤©æä»¬å¨å¦ï¼å ä½ä¸ºäºè§£ $(window).scrollTop(0); }) </script> </body> </html>
ãã尺寸ï¼
height() //ç忍¡åcontentç大å°ï¼å°±æ¯æä»¬è®¾ç½®çæ ç¾çé«åº¦å宽度
width()
innerHeight() //å
容contenté«åº¦ + 两个paddingçé«åº¦
innerWidth()
outerHeight() //å
容é«åº¦ + 两个paddingçé«åº¦ + 两个borderçé«åº¦ï¼ä¸å
æ¬marginçé«åº¦ï¼å 为margin䏿¯æ ç¾çï¼æ¯æ ç¾åæ ç¾ä¹é´çè·ç¦»
outerWidth()
ãããã
ãããã
ããææ¬æä½
ããããHTML代ç ï¼
html()// åå¾ç¬¬ä¸ä¸ªå¹é å ç´ çhtmlå 容ï¼å 嫿 ç¾å 容 html(val)// 设置ææå¹é å ç´ çhtmlå 容ï¼è¯å«æ ç¾ï¼è½å¤è¡¨ç°åºæ ç¾çææ
ããããææ¬å¼ï¼
text()// å徿æå¹é å ç´ çå 容ï¼åªæææ¬å å®¹ï¼æ²¡ææ ç¾ text(val)// 设置ææå¹é å ç´ çå 容ï¼ä¸è¯å«æ ç¾ï¼å°æ ç¾ä½ä¸ºææ¬æå ¥è¿å»
ãããã
ããããå¼ï¼
val()// åå¾ç¬¬ä¸ä¸ªå¹é å ç´ çå½åå¼ val(val)// 设置ææå¹é å ç´ çå¼ val([val1, val2])// 设置å¤éçcheckboxãå¤éselectçå¼
ããããä¾å¦ï¼
<input type="checkbox" value="basketball" name="hobby">篮ç <input type="checkbox" value="football" name="hobby">è¶³ç <select multiple id="s1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>
ãããã设置å¼ï¼
$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])
ãããã示ä¾ï¼
ããããããè·å被éä¸çcheckboxæradioçå¼ï¼
<label for="c1">女</label> <input name="gender" id="c1" type="radio" value="0"> <label for="c2">ç·</label> <input name="gender" id="c2" type="radio" value="1">
ããããå¯ä»¥ä½¿ç¨ï¼
$("input[name='gender']:checked").val()
ãããããæ³¨æï¼
ããããã
ãããããã
ããæ³¨æï¼å½æä»¬ä»å¤ä¸ªå¯¹è±¡ä¸åä¸ä¸ªå¯¹è±¡æ¥æä½çæ¶åçé®é¢ï¼
ãããã
ããããèªå®ä¹ç»å½æ ¡éªç¤ºä¾
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ææ¬æä½ä¹ç»å½éªè¯</title> <style> .error { color: red; } </style> </head> <body> <form action=""> <div> <label for="input-name">ç¨æ·å</label> <input type="text" id="input-name" name="name"> <span class="error"></span> </div> <div> <label for="input-password">å¯ç </label> <input type="password" id="input-password" name="password"> <span class="error"></span> </div> <div> <input type="button" id="btn" value="æäº¤"> </div> </form> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $("#btn").click(function () { var username = $("#input-name").val(); var password = $("#input-password").val(); if (username.length === 0) { $("#input-name").siblings(".error").text("ç¨æ·åä¸è½ä¸ºç©º"); } if (password.length === 0) { $("#input-password").siblings(".error").text("å¯ç ä¸è½ä¸ºç©º"); } }) </script> </body> </html>
ãã屿§æä½
ããããç¨äºIDèªå¸¦å±æ§çæèªå®ä¹å±æ§ï¼
attr(attrName)// è¿å第ä¸ä¸ªå¹é å ç´ ç屿§å¼ attr(attrName, attrValue)// 为ææå¹é å ç´ è®¾ç½®ä¸ä¸ªå±æ§å¼ attr({k1: v1, k2:v2})// 为ææå¹é å ç´ è®¾ç½®å¤ä¸ªå±æ§å¼ removeAttr()// 仿¯ä¸ä¸ªå¹é çå ç´ ä¸å é¤ä¸ä¸ªå±æ§
ããããç¨äºcheckboxåradio
prop() // è·å屿§
ããããæ³¨æï¼
ããããããå¨1.xå2.xçæ¬çjQueryä¸ä½¿ç¨attr对checkboxè¿è¡èµå¼æä½æ¶ä¼åºbugï¼å¨3.xçæ¬çjQueryä¸å没æè¿ä¸ªé®é¢ã为äºå ¼å®¹æ§ï¼æä»¬å¨å¤çcheckboxåradioçæ¶åå°½é使ç¨ç¹å®çprop()ï¼ä¸è¦ä½¿ç¨attr("checked", "checked")ã
<input type="checkbox" value="1"> <input type="radio" value="2"> <script> $(":checkbox[value='1']").prop("checked", true); //è®¾ç½®è®©å ¶éä¸ï¼è®¾ç½®é䏿ä¸éä¸çæ¶åè¦æ³¨æä¼ çåæ°é£ä¸ªtrueåfalseä¸è½åæå符串形å¼'true'\'false' .prop('checked','true')æ¯ä¸å¯¹ç $(":radio[value='2']").prop("checked", true); </script>
ããããpropåattrçåºå«ï¼
ããããããattrå ¨ç§°attribute(屿§)
ããããããpropå ¨ç§°property(屿§)
ããããããè½ç¶é½æ¯å±æ§ï¼ä½ä»ä»¬ææç屿§å¹¶ä¸ç¸åï¼attrææç屿§æ¯HTMLæ ç¾å±æ§ï¼èpropææçæ¯DOMå¯¹è±¡å±æ§ï¼å¯ä»¥è®¤ä¸ºattræ¯æ¾å¼çï¼èpropæ¯éå¼çã
ãããããã举个ä¾åï¼
<input type="checkbox" id="i1" value="1">
ããããããé对ä¸é¢ç代ç ï¼
$("#i1").attr("checked") // undefined $("#i1").prop("checked") // false
ããããããå¯ä»¥çå°attrè·åä¸ä¸ªæ ç¾å 没æçä¸è¥¿ä¼å¾å°undefinedï¼èpropè·åçæ¯è¿ä¸ªDOM对象ç屿§ï¼å æ¤checked为falseã
ããããããå¦ææ¢æä¸é¢ç代ç ï¼
<input type="checkbox" checked id="i1" value="1">
ããããããåæ§è¡ï¼
$("#i1").attr("checked") // checked $("#i1").prop("checked") // true
ããããããè¿å·²ç»å¯ä»¥è¯æattrçå±éæ§ï¼å®çä½ç¨èå´åªéäºHTMLæ ç¾å ç屿§ï¼èpropè·åçæ¯è¿ä¸ªDOM对象ç屿§ï¼ä¹å¯ä»¥ç解为è¿ä¸ªdom对象çç¶æï¼éä¸è¿åtrueï¼æ²¡éä¸è¿åfalseã
ããããããæ¥ä¸æ¥åçä¸ä¸é对èªå®ä¹å±æ§ï¼attråpropåæä»ä¹åºå«ï¼
<input type="checkbox" checked id="i1" value="1" me="èªå®ä¹å±æ§">
ããããããæ§è¡ä»¥ä¸ä»£ç ï¼
$("#i1").attr("me") // "èªå®ä¹å±æ§" $("#i1").prop("me") // undefined
ããããããå¯ä»¥çå°prop䏿¯æè·åæ ç¾çèªå®ä¹å±æ§ã
ããããããæ»ç»ä¸ä¸ï¼
ãããããããã1.å¯¹äºæ ç¾ä¸æçè½çå°ç屿§åèªå®ä¹å±æ§é½ç¨attr
ãããããããã2.对äºè¿åå¸å°å¼çæ¯å¦checkboxãradioåoptionçæ¯å¦è¢«é䏿è è®¾ç½®å ¶è¢«éä¸ä¸åæ¶éä¸é½ç¨propã
ããããããããå ·æ true å false ä¸¤ä¸ªå±æ§ç屿§ï¼å¦ checked, selected æè disabled 使ç¨prop()ï¼å ¶ä»çä½¿ç¨ attr()
ããããç»ä¹ é¢ï¼å ¨éãåéãåæ¶
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <button id="all">å ¨é</button> <button id="reverse">åé</button> <button id="cancel">åæ¶</button> <table border="1"> <thead> <tr> <th>#</th> <th>å§å</th> <th>ç±å¥½</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox"></td> <td>éèæ¿</td> <td>å¼è½¦</td> </tr> <tr> <td><input type="checkbox"></td> <td>æ¯å¥³ç¥</td> <td>è¶é</td> </tr> <tr> <td><input type="checkbox"></td> <td>èæï¼èå±ï¼</td> <td>䏿´å¤´ãä¸ç¿»è½¦ãä¸è¦è¸</td> </tr> </tbody> </table> <script src="jquery.js"></script> <script> // ç¹å»å ¨éæé® é䏿æçcheckbox // DOMç»å®äºä»¶æ¹æ³ // $("#all")[0].onclick = function(){} // jQueryç»å®äºä»¶æ¹æ³ $("#all").click(function () { $(":checkbox").prop('checked', true); }); // åæ¶ $("#cancel").on("click", function () { $(":checkbox").prop('checked', false); }); // åé $("#reverse").click(function () { // 1. æ¾å°ææéä¸çcheckboxåæ¶éä¸ // $("input:checked").prop('checked', false); // // 2. æ¾å°æ²¡æéä¸çcheckboxéä¸ // $("input:not(:checked)").prop('checked', true); //ä½ ä¼åç°ä¸é¢è¿ä¹åï¼ä¸è¡ï¼ä¸ºä»ä¹å¢ï¼å ä¸ºä½ åäºç¬¬ä¸æ¥æä½ä¹åï¼ååç¬¬äºæ¥æä½çæ¶åï¼æææ ç¾å°±å·²ç»å ¨é¨åæ¶éä¸äºï¼æä»¥ç¬¬äºæ¥å°±ææææ ç¾éä¸äº
// æ¹æ³1. forå¾ªç¯ææçcheckbox,æ¨ä¸ªå¤æåæ¥éä¸å°±åæ¶éä¸ï¼åæ¥æ²¡éä¸å°±éä¸ var $checkbox = $(":checkbox"); for (var i=0;i<$checkbox.length;i++){ // è·å忥çéä¸ä¸å¦çç¶æ var status = $($checkbox[i]).prop('checked'); $($checkbox[i]).prop('checked', !status); } // æ¹æ³2. å ç¨åéææ ç¾åæ¥çç¶æä¿å䏿¥ // var $unchecked = $("input:not(:checked)"); // var $checked = $("input:checked"); // // $unchecked.prop('checked', true); // $checked.prop('checked', false); }) </script> </body> </html>
ããææ¡£å¤ç
ããããæ·»å å°æå®å ç´ å é¨çåé¢
$(A).append(B)// æB追å å°A $(A).appendTo(B)// æA追å å°B
ãããã
ããããæ·»å å°æå®å ç´ å é¨çåé¢
$(A).prepend(B)// æBåç½®å°A $(A).prependTo(B)// æAåç½®å°B
ããããæ·»å å°æå®å ç´ å¤é¨çåé¢
$(A).after(B)// æBæ¾å°Açåé¢ $(A).insertAfter(B)// æAæ¾å°Bçåé¢
ããããæ·»å å°æå®å ç´ å¤é¨çåé¢
$(A).before(B)// æBæ¾å°Açåé¢ $(A).insertBefore(B)// æAæ¾å°Bçåé¢
ããããç§»é¤åæ¸ ç©ºå ç´
remove()// ä»DOMä¸å 餿æå¹é çå ç´ ã empty()// å é¤å¹é çå ç´ éå䏿æçåèç¹ï¼å æ¬ææ¬è¢«å ¨é¨å é¤ï¼ä½æ¯å¹é çå ç´ è¿å¨
ãããã
ããããæ¿æ¢
replaceWith()
replaceAll()
ãããã
ããããé
clone()// åæ°ï¼çä¸é¢ç示ä¾
ããããå é示ä¾ï¼ç¹å»å¤å¶æé®ï¼
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>å é</title> <style> #b1 { background-color: deeppink; padding: 5px; color: white; margin: 5px; } #b2 { background-color: dodgerblue; padding: 5px; color: white; margin: 5px; } </style> </head> <body> <button id="b1">å± é¾å®åï¼ç¹å»å°±é</button> <hr> <button id="b2">å± é¾å®åï¼ç¹å»å°±é</button> <script src="jquery-3.2.1.min.js"></script> <script> // cloneæ¹æ³ä¸å åæ°trueï¼å éæ ç¾ä½ä¸å éæ ç¾å¸¦çäºä»¶ $("#b1").on("click", function () { $(this).clone().insertAfter(this); }); // cloneæ¹æ³å åæ°trueï¼å éæ ç¾å¹¶ä¸å éæ ç¾å¸¦çäºä»¶ $("#b2").on("click", function () { $(this).clone(true).insertAfter(this); }); </script> </body> </html>
ãã
ããä½ä¸ï¼
ããããç¹å»æé®å¨è¡¨æ ¼æ·»å ä¸è¡æ°æ®ã
ããããç¹å»æ¯ä¸è¡çå 餿é®å é¤å½åè¡æ°æ®ã
ãããã
ããä½ä¸ç¤ºä¾ä»£ç ï¼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .cover { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, 0.3); z-index: 99; } .modal { width: 300px; height: 200px; background-color: white; position: absolute; top: 50%; left: 50%; margin-top: -100px; margin-left: -150px; z-index: 1000; } .hide { display: none; } </style> </head> <body> <button id="add">æ°å¢</button> <table border="1"> <thead> <tr> <th>#</th> <th>å§å</th> <th>ç±å¥½</th> <th>æä½</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox"></td> <td>éèæ¿</td> <td>å¼è½¦</td> <td> <button class="fire">å¼é¤</button> </td> </tr> <tr> <td><input type="checkbox"></td> <td>æ¯å¥³ç¥</td> <td>è¶é</td> <td> <button class="fire">å¼é¤</button> </td> </tr> <tr> <td><input type="checkbox"></td> <td>èæï¼èå±ï¼</td> <td>䏿´å¤´ãä¸ç¿»è½¦ãä¸è¦è¸</td> <td> <button class="fire">å¼é¤</button> </td> </tr> </tbody> </table> <div class="cover hide"></div> <div class="modal hide"> <div> <label>å§åï¼ <input type="text" id="name"> </label> </div> <div> <label>ç±å¥½ï¼ <input type="text" id="hobby"> </label> </div> <button id="cancel" type="button">åæ¶</button> <button id="submit" type="button">æäº¤</button> </div> <script src="jquery.js"></script> <script> // å®ä¹ä¸ä¸ªæ¸ 空è¾å ¥æ¡å¹¶ä¸éèæ¨¡ææ¡çæ¹æ³ function hideModal(){ // 1. æ¸ ç©ºinputçå¼ $("#name,#hobby").val(''); // 2. éèèµ·æ¥ $(".cover,.modal").addClass('hide'); } // å¼é¤æé®çåè½ $("table").on('click', '.fire', function () { //æä»¬å å»å¦å泡äºä»¶ãäºä»¶å§æç¶åå忥å¦è¿ä¸ªä¾åï¼äºä»¶éé¢é½æ¯ç¨çå¿å彿°ï¼è¿éç¨onæ¯å 为æ
//们è¦å°æ°æ·»å è¿æ¥çæ¯è¡éé¢çbuttonæ ç¾è½å¤ç»§æ¿è¿ä¸ªç¹å»å é¤çäºä»¶ // ç¹å»å¼é¤æé®è¦åçäºå¿ // æå½åè¡ç§»é¤æ //this --> 触åå½åç¹å»äºä»¶çDOM对象 $(this).parent().parent().remove(); // é¾å¼æä½ }); // æ°å¢æé®çåè½ $("#add").click(function () { // ç¹å»æ°å¢æé®è¦åçäºå¿ // 1. ç§»é¤coveråmodalçhideæ ·å¼ $(".cover,.modal").removeClass('hide'); }); // ç¹å»modalä¸çcancelæé® $("#cancel").click(function () { hideModal(); }); // ç¹å»modalä¸çsubmitæé® $("#submit").click(function () { // 1. è·åç¨æ·è¾å ¥çå¼ var name = $("#name").val(); var hobby = $("#hobby").val(); // 2. éèæ¨¡ææ¡ï¼æ¸ 空è¾å ¥æ¡ hideModal(); // 3. å建ä¸ä¸ªtræ ç¾ï¼ææ°æ®å¡è¿å» var trEle = document.createElement("tr"); $(trEle).append('<td><input type="checkbox"></td>'); $(trEle).append('<td>' + name + '</td>'); var tdTmp = document.createElement('td'); tdTmp.innerText = hobby; $(trEle).append(tdTmp); $(trEle).append('<td><button class="fire">å¼é¤</button></td>') // 4. æä¸ä¸æ¥çtr追å å°è¡¨æ ¼çtbodyåé¢ $('tbody').append(trEle); });
ãã//å ç¨ä¸é¢è¿ç§æ¹å¼åï¼ä½ ä¼åç°ä¸äºé®é¢ï¼æä»¬æ°æ·»å çæ¯ä¸è¡æ°æ®éé¢çé£ä¸ªbuttonæ ç¾ç¹å»å é¤çæ¶åæ²¡æææ // // ç¹å»modalä¸çsubmitæé® // $("#submit").on('click', function () { #è¿ä¸ªåç´æ¥$('submit').click(function ...)æ¯ä¸æ ·ç // // 1. è·åç¨æ·è¾å ¥çå¼ // var name = $("#name").val(); // var hobby = $("#hobby").val(); // // 2. éèæ¨¡ææ¡ï¼æ¸ 空è¾å ¥æ¡ // hideModal(); // // 3. å建ä¸ä¸ªtræ ç¾ï¼ææ°æ®å¡è¿å» // var trEle = document.createElement("tr"); // $(trEle).append('<td><input type="checkbox"></td>'); // $(trEle).append('<td>' + name + '</td>'); // var tdTmp = document.createElement('td'); // tdTmp.innerText = hobby; // $(trEle).append(tdTmp); // $(trEle).append('<td><button class="fire">å¼é¤</button></td>') // // 4. æä¸ä¸æ¥çtr追å å°è¡¨æ ¼çtbodyåé¢ // $('tbody').append(trEle); // }) </script> </body> </html>
äºä»¶
ãã常ç¨äºä»¶
click(function(){...}) hover(function(){...}) blur(function(){...}) focus(function(){...}) change(function(){...}) //å 容åçååï¼inputï¼selectç keyup(function(){...})
mouseover å mouseenterçåºå«æ¯ï¼mouseoveräºä»¶æ¯å¦æè¯¥æ ç¾æåæ ç¾ï¼é£ä¹ç§»å¨å°è¯¥æ ç¾æè ç§»å¨å°åæ ç¾æ¶ä¼è¿ç»è§¦åï¼mmouseenteräºä»¶ä¸ç®¡ææ²¡æåæ ç¾é½åªè§¦å䏿¬¡ï¼è¡¨ç¤ºé¼ æ è¿å ¥è¿ä¸ªå¯¹è±¡
ããããkeydownåkeyupäºä»¶ï¼é®çæé®æä¸åæ¬èµ·çäºä»¶ï¼è¿æä¸äºå ¶ä»çkeyäºä»¶ï¼ç»å示ä¾ï¼æä½shiftå®ç°æ¹éæä½ï¼
ããããããå æä¸é¢ç代ç 齿¿è¿æ¥ççææï¼
ãããããããã
ãããããã代ç 示ä¾ï¼html代ç èªå·±copyä¸ä¸å°±è¡äºï¼jsé¨åæä»¬èªå·±ååï¼å ¶å®å°±æ¯é®ççæé®åæä»¬çäºä»¶ç»å®å°ä¸èµ·äºã
ããããããããå çä¸ä¸keyCodeï¼é®ç䏿¯ä¸ªæé®é½å¯¹åºæä¸ä¸ªkeyCodeï¼
ãããããããããããã
ãããããããããã
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <title>Title</title> </head> <body> <table border="1"> <thead> <tr> <th>#</th> <th>å§å</th> <th>æä½</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox"></td> <td>Egon</td> <td> <select> <option value="1">ä¸çº¿</option> <option value="2">ä¸çº¿</option> <option value="3">åè</option> </select> </td> </tr> <tr> <td><input type="checkbox"></td> <td>Alex</td> <td> <select> <option value="1">ä¸çº¿</option> <option value="2">ä¸çº¿</option> <option value="3">åè</option> </select> </td> </tr> <tr> <td><input type="checkbox"></td> <td>Yuan</td> <td> <select> <option value="1">ä¸çº¿</option> <option value="2">ä¸çº¿</option> <option value="3">åè</option> </select> </td> </tr> <tr> <td><input type="checkbox"></td> <td>EvaJ</td> <td> <select> <option value="1">ä¸çº¿</option> <option value="2">ä¸çº¿</option> <option value="3">åè</option> </select> </td> </tr> <tr> <td><input type="checkbox"></td> <td>Gold</td> <td> <select> <option value="1">ä¸çº¿</option> <option value="2">ä¸çº¿</option> <option value="3">åè</option> </select> </td> </tr> </tbody> </table> <script src="jquery-3.3.1.js"></script> <script> //æä¸shiftå°±è¿å ¥æ¹éæä½çæ¨¡å¼ var flag = false; // shiftæé®è¢«æä¸çæ¶åï¼é®ç䏿¯ä¸ªæé®é½å¯¹åºæä¸ä¸ªkeyCodeå¼ $(window).keydown(function (event) { console.log(event.keyCode); if (event.keyCode === 16){ flag = true; } }); // shiftæé®è¢«æ¬èµ·çæ¶å $(window).keyup(function (event) { console.log(event.keyCode); if (event.keyCode === 16){ flag = false; } }); // selectæ ç¾çå¼åçååçæ¶å $("select").change(function (event) { // 妿shiftæé®è¢«æä¸ï¼å°±è¿å ¥æ¹éç¼è¾æ¨¡å¼ // shiftæé®å¯¹åºçcodeæ¯16 // 夿å½åselectè¿ä¸è¡æ¯å¦è¢«éä¸ console.log($(this).parent().siblings().first().find(":checkbox")); var isChecked = $(this).parent().siblings().first().find(":checkbox").prop("checked"); console.log(isChecked); if (flag && isChecked) { // è¿å ¥æ¹éç¼è¾æ¨¡å¼ // 1. åå°å½åselectéä¸çå¼ var value = $(this).val();//å«å¿äºthisæ¯ä¸ªdom对象ï¼è¦ç¨$(this)å 裹起æ¥åæjQuery对象 // 2. ç»å ¶ä»è¢«éä¸è¡çselect设置æåæä¸æ ·çå¼ // 2.1 æ¾å°é£äºè¢«éä¸è¡çselect //被éä¸çè¡å°±æ¯$('input:checked') var $select = $("input:checked").parent().parent().find("select") //ä¸è¬jQueryä¸çåéåï¼æä»¬å¨åéååé¢å ä¸ä¸ª$符å·åºåä¸ä¸
//var $select = $('tr:has(input:checked)').find('select') è¿ä¸ªä¹å¯ä»¥ï¼éæ©æäºæ ç¾çæ¹æ³æå¾å¤æ // 2.2 ç»éä¸çselectèµå¼ $select.val(value); } }); </script> </body> </html>
ããããhoveräºä»¶ç¤ºä¾ï¼hoveräºä»¶ï¼ä¸æ¯åçdomçé£ä¸ªhoverï¼å¹¶ä¸jsé颿²¡æonhoveräºä»¶ï¼è¿ä¸ªæ¯jQueryçhoveräºä»¶ï¼æ¯jQueryå°è£ çï¼åçjsé颿²¡æï¼ï¼
ããããæä»¬å æ¿ä»£ç ççææï¼åæä¸ä¸ä»£ç å°±è¡å¦ï¼ä½ 们èªå·±ä¸æ¥ç»ä¹ å
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>hover示ä¾</title> <style> * { margin: 0; padding: 0; } .nav { height: 40px; width: 100%; background-color: #3d3d3d; position: fixed; top: 0; } .nav ul { list-style-type: none; line-height: 40px; } .nav li { float: left; padding: 0 10px; color: #999999; position: relative; } .nav li:hover { background-color: #0f0f0f; color: white; } .clearfix:after { content: ""; display: block; clear: both; } .son { position: absolute; top: 40px; right: 0; height: 50px; width: 100px; background-color: #00a9ff; display: none; <!--æå¼å§æ¯é»è®¤ä¸æ¾ç¤ºç--> } .hover .son { <!--è¿ä¸ªéæ©å¨çæçæ¡ä»¶æ¯è¿ä¸¤ä¸ªclass屿§çå¼é½ææçæï¼å¦ææä»¬ç§»é¤äºclass='hover'ï¼è¿ä¸ª.hover就没æäºï¼é£ä¹è¿ä¸ªéæ©å¨å°±ä¸çæäºï¼é£è¿ä¸ªæ ·å¼ä¹å°±ä¸çæäº--> display: block; } </style> </head> <body> <div class="nav"> <ul class="clearfix"> <li>ç»å½</li> <li>注å</li> <li>è´ç©è½¦ <p class="son hide"> 空空å¦ä¹... </p> </li> </ul> </div> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script> $(".nav li").hover(
ã//hoveräºä»¶å为两æ¥ï¼äºä»¶ä¸æä¸¤ä¸ªå¿å彿°
//ç¬¬ä¸æ¥ï¼é¼ æ ç§»å¨ä¸å» function () { $(this).addClass("hover"); },
//ç¬¬äºæ¥ï¼é¼ æ 移走 function () { $(this).removeClass("hover"); } ); </script> </body> </html>
ãããã宿¶çå¬inputè¾å ¥å¼åå示ä¾ï¼inputå¼ååäºä»¶ï¼çç¾åº¦æç´¢çææï¼
ãããããã
ããããè¿å«åinputäºä»¶ï¼ç代ç ï¼åªè¦inputæ¡éé¢çå¼åçåå就触åæä¸ªäºä»¶ï¼æ³¨æinputäºä»¶ä¸è½ç´æ¥ç»å®ï¼å¿ é¡»ç¨onç»å®æè¡ï¼$('#d1').input(function{})æ¯ä¸å¯¹çï¼$('#d1').on('input',function(){})æè¡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>宿¶çå¬inputè¾å ¥å¼åå</title> </head> <body> <input type="text" id="i1"> <script src="jquery-3.2.1.min.js"></script> <script> /* * oninputæ¯HTML5çæ åäºä»¶ * è½å¤æ£æµtextarea,input:text,input:passwordåinput:searchè¿å 个å ç´ çå 容ååï¼ * å¨å 容修æ¹åç«å³è¢«è§¦åï¼ä¸åonchangeäºä»¶éè¦å¤±å»ç¦ç¹æè§¦å * oninputäºä»¶å¨IE9以ä¸çæ¬ä¸æ¯æï¼éè¦ä½¿ç¨IEç¹æçonpropertychangeäºä»¶æ¿ä»£ * 使ç¨jQueryåºçè¯ç´æ¥ä½¿ç¨onåæ¶ç»å®è¿ä¸¤ä¸ªäºä»¶å³å¯ã * */ $("#i1").on("input propertychange", function () { //å¯ä»¥æ¯æIE9以ä¸ççæ¬ console.log($(this).val()); }) </script> </body> </html>
ããä¸é¢ä»£ç çææ
ãããã
ããäºä»¶ç»å®
ãããã.on( events [, selector ],function(){})
ãããããã1.eventsï¼ äºä»¶
ãããããã2.selector: éæ©å¨ï¼å¯éçï¼
ãããããã3.function: äºä»¶å¤ç彿°
ããç§»é¤äºä»¶ï¼ä¸å¸¸ç¨ï¼
ãããã.off( events [, selector ][,function(){}])
ããããoff()
æ¹æ³ç§»é¤ç¨ .on()
ç»å®çäºä»¶å¤çç¨åºã
ãããããã$("li").off("click")ï¼å°±å¯ä»¥äº
ãããããã1.eventsï¼ äºä»¶
ãããããã2.selector: éæ©å¨ï¼å¯éçï¼
ãããããã3.function: äºä»¶å¤ç彿°
ãã黿¢åç»äºä»¶æ§è¡
ãããã1. return false; // 常è§é»æ¢è¡¨åæäº¤çï¼å¦æinputæ ç¾éé¢çå¼ä¸ºç©ºå°±ç»ç»å®æäº¤ï¼å°±å¯ä»¥ä½¿ç¨è¿ä¸¤ç§æ¹æ³
ãããã2. e.stopPropagation();
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>黿¢é»è®¤äºä»¶</title> </head> <body> <form action=""> #actionéé¢å¦ææ²¡åurlï¼é»è®¤æ¯å°å 容æäº¤å°å½å页é¢çurlå¤ <button id="b1">ç¹æ</button> </form> <script src="jquery-3.3.1.min.js"></script> <script> $("#b1").click(function (e) { alert(123); //return false; e.stopPropagation(); }); </script> </body> </html>
ããããæ³¨æï¼
ããããããåclickãkeydownçDOMä¸å®ä¹çäºä»¶ï¼æä»¬é½å¯ä»¥ä½¿ç¨`.on()`æ¹æ³æ¥ç»å®äºä»¶ï¼ä½æ¯`hover`è¿ç§jQueryä¸å®ä¹çäºä»¶å°±ä¸è½ç¨`.on()`æ¹æ³æ¥ç»å®äºã
ããããããæ³ä½¿ç¨äºä»¶å§æçæ¹å¼ç»å®hoveräºä»¶å¤ç彿°ï¼å¯ä»¥åç §å¦ä¸ä»£ç å两æ¥ç»å®äºä»¶ï¼
$('ul').on('mouseenter', 'li', function() {//ç»å®é¼ æ è¿å ¥äºä»¶ $(this).addClass('hover'); }); $('ul').on('mouseleave', 'li', function() {//ç»å®é¼ æ ååºäºä»¶ $(this).removeClass('hover'); });
ãã黿¢äºä»¶å泡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>黿¢äºä»¶å泡</title> </head> <body> <div> <p> <span>ç¹æ</span> </p> </div> <script src="jquery-3.3.1.min.js"></script> <script>
//åæ³¡çææå°±æ¯å 为htmlå¯ä»¥åµå¥ï¼å¦æä½ ç»å¿åæ ç¾ç»å®äºç¹äºä»¶æè 没æç»å®ç¹å»äºä»¶ï¼ç¶çº§æ ç¾ç»å®äºç¹å»äºä»¶ï¼é£ä¹ä½ ä¸ç¹å»åæ ç¾ï¼ä¸ç®¡åæ ç¾
ææ²¡æç»å®äºä»¶ï¼é½ä¼è§¦åç¶çº§æ ç¾çç¹å»äºä»¶ï¼å¦ææï¼ä¼å 触ååæ ç¾çç¹å»äºä»¶ï¼ç¶å触åç¶çº§æ ç¾çç¹å»äºä»¶ï¼ä¸ç®¡åæ ç¾ææ²¡æç¹å»äºä»¶ï¼é½ä¼ä¸çº§ä¸çº§çè¿å¾ä¸æ¾ç¹å»äºä»¶
//æä»¥æä»¬è¦é»æ¢è¿ç§äºä»¶å泡 $("span").click(function (e) { //è¿ä¸ªåæ°e(åªæ¯ä¸ªå½¢åï¼åevtæè eventååçä¹å¾å¤)表示å½åäºä»¶æ¬èº«ï¼è¿ä¸ªäºä»¶ä¹æ¯ä¸ä¸ªå¯¹è±¡ alert("span");
//return falseï¼è¿ä¸ªä¹å¯ä»¥é»æ¢ e.stopPropagation(); ç¨äºä»¶å¯¹è±¡çè¿ä¸ªæ¹æ³å°±è½é»æ¢å泡 ï¼Propagationï¼ä¼ éçææï¼ }); $("p").click(function () { alert("p"); }); $("div").click(function () { alert("div"); }) </script> </body> </html>
ããããpycharmçä¸ä¸ªåè½ï¼
ãããã
ã
ããäºä»¶å§æ
ããããäºä»¶å§ææ¯éè¿äºä»¶å泡çåçï¼å©ç¨ç¶æ ç¾å»æè·åæ ç¾çäºä»¶ï¼å°æªæ¥æ·»å è¿æ¥çæäºåæ ç¾èªå¨ç»å®ä¸äºä»¶ã
ãããã示ä¾ï¼
ããããè¡¨æ ¼ä¸æ¯ä¸è¡çç¼è¾åå 餿é®é½è½è§¦åç¸åºçäºä»¶ãåå»å®åä¸ä¸å±ä»¬ä¸é¢çé£ä¸ªä½ä¸å§ï¼æ·»å ä¸è¡æ°æ®çé£ä¸ªä½ä¸ï¼ç¶åæä»¬å¨å¦ä¹ ä¸ä¸ä¸é¢çé£äºç»å®äºä»¶ã
$("table").on("click", ".delete", function () { //ä¸é´çåæ°æ¯ä¸ªéæ©å¨ï¼åé¢è¿ä¸ª$('table')æ¯ç¶çº§æ ç¾éæ©å¨ï¼éæ©çæ¯ç¶çº§æ ç¾ï¼ææå°±æ¯å°åæ ç¾ï¼ååååï¼çç¹å»äºä»¶å§æç»äºç¶çº§æ ç¾
//使¯è¿é注æä¸ç¹ï¼ä½ console.log(this)ï¼ä½ ä¼åç°thisè¿æ¯è§¦åäºä»¶çé£ä¸ªåæ ç¾ï¼è¿ä¸ªè®°ä½æ
// å 餿é®ç»å®çäºä»¶
})
ãã页é¢è½½å ¥
ããããå½DOMè½½å ¥å°±ç»ªå¯ä»¥æ¥è¯¢åæçºµæ¶ç»å®ä¸ä¸ªè¦æ§è¡ç彿°ãè¿æ¯äºä»¶æ¨¡å䏿éè¦çä¸ä¸ªå½æ°ï¼å 为å®å¯ä»¥æå¤§å°æé«webåºç¨ç¨åºçååºé度ã
ããããè¿è®°å¾æä»¬è¯´å°js代ç åå°headæ ç¾ååébodyæ ç¾ä¸é¢çä½ç¨æ¯ä¸åçåï¼åå¨headæ ç¾éé¢çè¯ï¼å¦æä½ åäºæä½æä¸ªæ ç¾çå 容çè¯ï¼é£ä¸ªæ ç¾è¿æ²¡å è½½åºæ¥ï¼å å è½½äºä½ çjs代ç ï¼å°±æ¾ä¸å°è¿ä¸ªæ ç¾ï¼æä»¥ä¸ä¼çæï¼æä»¥åå¨bodyæ ç¾æä¸é¢æ¯ä¸ç§è§£å³åæ³ï¼è¿æä¸ç§åæ³å°±æ¯window.οnlοad=function(){jsç代ç }ï¼ç页é¢ä¸ææçå ç´ é½å è½½å®ï¼å¨æ§è¡è¿éé¢çjs代ç ï¼è¿è®°å¾åï¼ï¼ä½æ¯è¿ä¸ªwindow.onloadæä¸ªç¼ºç¹ï¼è¿ä¸ªç¼ºç¹å°±æ¯è¿ä¸ªæä½æ¶ç»window.onloadèµå¼ï¼å¦æä½ èªå·±åäºä¸¤ä¸ªjsæä»¶ï¼æ¯ä¸ªjsæä»¶ä¸é½æä¸ä¸ªwindow.onloadçè¯ï¼é£ä¹åå¼å ¥çæä»¶ä¼æåé¢å¼å ¥çæä»¶çwindow.onloadéé¢çjs代ç å ¨é¨è¦çæï¼é£ä¹ç¬¬ä¸ä¸ªæä»¶çjs代ç 就失å»äºææï¼è¿æä¸ä¸ªé®é¢å°±æ¯ï¼window.onloadä¼çå°é¡µé¢ä¸çææ¡£ãå¾çãè§é¢çææèµæºé½å è½½å®ææ§è¡éé¢çjs代ç ï¼å¯¼è´æäºææçå è½½æ¯è¾æ ¢ï¼æä»¥æä»¬ä½¿ç¨ä¸é¢çåæ³ï¼ä¸åå¨è¦çé®é¢ï¼èä¸åªè¦ææ¡£å è½½å®å°±è§¦åï¼ä¸éè¦ççä¸äºå¾çåè§é¢åä»ä¹çï¼å è½½jsææçé度快ã
ãããã两ç§åæ³ï¼
$(document).ready(function(){ // å¨è¿éåä½ çJS代ç ... })
ããããç®åï¼
$(function(){ // ä½ å¨è¿éåä½ ç代ç })
ãããã
ããããææ¡£å è½½å®ç»å®äºä»¶ï¼å¹¶ä¸é»æ¢é»è®¤äºä»¶åçï¼ç»å½æ ¡éªç¤ºä¾ï¼ï¼è¿ä¸ªä¸è®²ï¼å¤§å®¶çç代ç å°±è¡å¦ï¼
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ç»å½æ³¨å示ä¾</title> <style> .error { color: red; } </style> </head> <body> <form id="myForm"> <label for="name">å§å</label> <input type="text" id="name"> <span class="error"></span> <label for="passwd">å¯ç </label> <input type="password" id="passwd"> <span class="error"></span> <input type="submit" id="modal-submit" value="ç»å½"> </form> <script src="jquery-3.2.1.min.js"></script> <script src="s7validate.js"></script> <script> function myValidation() { // 夿¬¡ç¨å°çjQuery对象åå¨å°ä¸ä¸ªåéï¼é¿å é夿¥è¯¢ææ¡£æ var $myForm = $("#myForm"); $myForm.find(":submit").on("click", function () { // å®ä¹ä¸ä¸ªæ å¿ä½ï¼è®°å½è¡¨å填忝妿£å¸¸ var flag = true; $myForm.find(":text, :password").each(function () { var val = $(this).val(); if (val.length <= 0 ){ var labelName = $(this).prev("label").text(); $(this).next("span").text(labelName + "ä¸è½ä¸ºç©º"); flag = false; } }); // 表åå¡«åæè¯¯å°±ä¼è¿åfalseï¼é»æ¢submitæé®é»è®¤çæäº¤è¡¨åäºä»¶ return flag; }); // inputè¾å ¥æ¡è·åç¦ç¹åç§»é¤ä¹åçé误æç¤ºä¿¡æ¯ $myForm.find("input[type!='submit']").on("focus", function () { $(this).next(".error").text(""); }) } // ææ¡£æ å°±ç»ªåæ§è¡ $(document).ready(function () { myValidation(); }); </script> </body> </html>
ããä¸window.onloadçåºå«
ãããã1.window.onload()彿°æè¦çç°è±¡ï¼å¿ é¡»çå¾ çå¾çèµæºå è½½å®æä¹åæè½è°ç¨
ãããã2.jQueryçè¿ä¸ªå ¥å£å½æ°æ²¡æå½æ°è¦çç°è±¡ï¼ææ¡£å è½½å®æä¹åå°±å¯ä»¥è°ç¨ï¼å»ºè®®ä½¿ç¨æ¤å½æ°ï¼
ãã
å¨ç»ææï¼äºè§£ï¼
// åºæ¬ show([s,[e],[fn]]) $('.c1').show() //show(5000),å°±æ¯5ç§ä¹åæ¾ç¤ºåºæ¥è¿ä¸ªæ ç¾ï¼å¹¶ä¸æä¸ä¸ªå¨ç»ææï¼ï¼æä¸ªimgå¾çççææï¼ï¼åé¢ä¸¤ä¸ªåæ°å ä¸ç¨ç®¡ hide([s,[e],[fn]]) $('.c1').hide() toggle([s],[e],[fn])//è¿å 个toggleçææå°±æ¯ä½ 忥æ¯ä»ä¹ææï¼æå°±åçæ¥ // æ»å¨ï¼æçªå¸ä¸æ ·ï¼ slideDown([s],[e],[fn])
//使ç¨çæ¶åå«å¿äºç»æ ç¾è®¾ç½®ä¸ä¸ªé«åº¦å宽度ï¼å ¶å®å°±æ¯æ§å¶ä½ çæ ç¾é«åº¦ï¼å¦æä½ å$('#di').slideUp(5000)ï¼ææå°±æ¯5ç§å æä½ çé«åº¦å为0
//è¿æå¦æä½ ç´æ¥æä½çæ¯imgæ ç¾åæä½imgæ ç¾çç¶çº§æ ç¾ï¼ä¸¤ä¸ªçæææ¯ä¸åç slideUp([s,[e],[fn]]) slideToggle([s],[e],[fn]) // æ·¡å ¥æ·¡åºï¼æ§å¶éæåº¦ï¼ fadeIn([s],[e],[fn]) fadeOut([s],[e],[fn]) fadeTo([[s],o,[e],[fn]]) oåæ°æ¯éæåº¦ï¼0-1çåºé´ï¼æææ¯æ·¡å ¥æè æ·¡åºå°ä¸ä¸ªå¤å¤§çéæè¯» fadeToggle([s,[e],[fn]]) // èªå®ä¹ï¼äºè§£å³å¯ï¼ animate(p,[s],[e],[fn])
ãããçä¸ä¸ªshowåhideçä¾åï¼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .c1{ background-color: red; /*background: url("hlw.png") no-repeat;*/ width: 200px; height: 200px; /*position: absolute;*/ /*èªå·±è¯ä»¥ä¸positionï¼absoluteçææ*/ display: none; } .c2{ height: 100px; background-color: lawngreen; } </style> </head> <body> <!--<div class="c1" hidden></div>--> <!--ä¸ç¨hiddenï¼ä¸é¢ådisplayï¼none乿¯å¯ä»¥ç--> <div class="c1"></div> <div class="c2"></div> <script src="jquery.js"></script> <script> // $('.c1').hide(3000); $('.c1').show(3000); </script> </body> </html>
ããããå ¶ä»çæ¹æ³ç®åè¯è¯å°±è¡äºï¼
ãããã
ããããéè¿animateèªå®ä¹å¨ç»ç¤ºä¾ï¼ç¹èµç¹æç®å示ä¾ï¼ççææï¼èªå·±çç代ç å°±è¡å¦ï¼ä½ 以å大æ¦çä¸ç¨ä¸å°ï¼ï¼
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ç¹èµå¨ç»ç¤ºä¾</title> <style> div { position: relative; display: inline-block; } div>i { display: inline-block; color: red; position: absolute; right: -16px; top: -5px; opacity: 1; } </style> </head> <body> <div id="d1">ç¹èµ</div> <script src="jquery-3.2.1.min.js"></script> <script> $("#d1").on("click", function () { var newI = document.createElement("i"); newI.innerText = "+1"; $(this).append(newI); $(this).children("i").animate({ opacity: 0 //1ç§ä¹åéæåº¦å为0ï¼æ³¨æåæ³ï¼animate({屿§ï¼å¼},æ¯«ç§æ°) }, 1000) }) </script> </body> </html>
è¡¥å
each
ããjQuery.each(collection, callback(indexInArray, valueOfElement))ï¼
ããããæè¿°ï¼ä¸ä¸ªéç¨çè¿ä»£å½æ°ï¼å®å¯ä»¥ç¨æ¥æ ç¼è¿ä»£å¯¹è±¡åæ°ç»ãæ°ç»å类似æ°ç»ç对象éè¿ä¸ä¸ªé¿åº¦å±æ§ï¼å¦ä¸ä¸ªå½æ°çåæ°å¯¹è±¡ï¼æ¥è¿ä»£æ°åç´¢å¼ï¼ä»0å°length - 1ãå ¶ä»å¯¹è±¡éè¿å ¶å±æ§åè¿è¡è¿ä»£ã
li =[10,20,30,40] $.each(li,function(i, v){ console.log(i, v);//functionéé¢å¯ä»¥æ¥åä¸¤ä¸ªåæ°ï¼iæ¯ç´¢å¼ï¼væ¯æ¯æ¬¡å¾ªç¯çå ·ä½å ç´ ã })
循ç¯èªå®ä¹å¯¹è±¡ä¹æ¯å¯ä»¥çï¼
// var d1 = {'name':'chao','age':18}
// $.each(d1,function(k,v){console.log(k,v)})
ããããè¾åºï¼
010 120 230 340
ãã.each(function(index, Element))ï¼
ããããæè¿°ï¼éåä¸ä¸ªjQuery对象ï¼ä¸ºæ¯ä¸ªå¹é å ç´ æ§è¡ä¸ä¸ªå½æ°ã
ãããã.each()
æ¹æ³ç¨æ¥è¿ä»£jQuery对象ä¸çæ¯ä¸ä¸ªDOMå
ç´ ãæ¯æ¬¡åè°å½æ°æ§è¡æ¶ï¼ä¼ä¼ éå½åå¾ªç¯æ¬¡æ°ä½ä¸ºåæ°(ä»0å¼å§è®¡æ°)ãç±äºåè°å½æ°æ¯å¨å½åDOMå
ç´ ä¸ºä¸ä¸æçè¯å¢ä¸è§¦åçï¼æä»¥å
³é®å this
æ»æ¯æåè¿ä¸ªå
ç´ ã
// 为æ¯ä¸ä¸ªliæ ç¾æ·»å foo $("li").each(function(){ $(this).addClass("c1"); });
ããããæ³¨æ: jQueryçæ¹æ³è¿åä¸ä¸ªjQuery对象ï¼éåjQueryéåä¸çå
ç´ - 被称为éå¼è¿ä»£çè¿ç¨ãå½è¿ç§æ
åµåçæ¶ï¼å®é常ä¸éè¦æ¾å¼å°å¾ªç¯ç .each()
æ¹æ³ï¼
ããããä¹å°±æ¯è¯´ï¼ä¸é¢çä¾å没æå¿ è¦ä½¿ç¨each()æ¹æ³ï¼ç´æ¥åä¸é¢è¿æ ·åå°±å¯ä»¥äºï¼
$("li").addClass("c1"); // å¯¹æææ ç¾åç»ä¸æä½
ããæ³¨æï¼
ããããå¨éåè¿ç¨ä¸å¯ä»¥ä½¿ç¨ return false
æåç»æeach循ç¯ã
ããããèç´æ¥ä½¿ç¨return;åé¢ä»ä¹é½ä¸å ï¼ä¸åfalseï¼å°±æ¯è·³è¿æ¬æ¬¡å¾ªç¯çææ
ããç»æ¢each循ç¯
return falseï¼
ãããããvar namelist = ['a','b','c']
ããããã
ãããã
ããããä¸é¢æ¯å¾ªç¯ä¸ä¸ªæ°ç»ï¼éè¿$.each,è¿éè¦ææ°ç»ä¼ è¿å»ï¼æä»¬è¿å¯ä»¥éè¿eachæ¥å¾ªç¯æ ç¾ï¼(thisæçæ¯å½å循ç¯çé£ä¸ªæ ç¾å¯¹è±¡ï¼ä»¥åå¾ªç¯æ ç¾çæ¶åï¼å°±ä¸ç¨èªå·±åfor循ç¯äºï¼ç¨eachå°±è¡äº)
jsåjqueryä¸çfor循ç¯ä¹æ¯éè¿ä»ä»¬ä¸¤ä¸ªæ¥è·³åºå½æ¤å¾ªç¯æè ç»æ¢å¾ªç¯
ãããããã
ãããããã
ããããä¼ç¬...
ãã.data()
ããããä»»æjQueryå¯¹è±¡é½ædataæ¹æ³ï¼å¯ä»¥ä¿åä»»æå¼ï¼å¯ä»¥ç¨æ¥ä»£æ¿å ¨å±åé
ããããå¨å¹é çå ç´ éåä¸çææå ç´ ä¸åå¨ä»»æç¸å ³æ°æ®æè¿åå¹é çå ç´ éåä¸ç第ä¸ä¸ªå ç´ çç»å®åç§°çæ°æ®åå¨çå¼ã
ãã.data(key, value): 设置å¼
ããããæè¿°ï¼å¨å¹é çå ç´ ä¸åå¨ä»»æç¸å ³æ°æ®ã
$("div").data("k",100);//ç»æædivæ ç¾é½ä¿åä¸ä¸ªå为kï¼å¼ä¸º100
ãã.data(key): åå¼ï¼æ²¡æçè¯è¿åundefined
ããããæè¿°: è¿åå¹é
çå
ç´ éåä¸ç第ä¸ä¸ªå
ç´ çç»å®åç§°çæ°æ®åå¨çå¼âéè¿ .data(name, value)
æ HTML5 data-*
屿§è®¾ç½®ã
$("div").data("k");//è¿å第ä¸ä¸ªdivæ ç¾ä¸ä¿åç"k"çå¼
ããããä¿åå¼ï¼
ãããããã
ããããå¯ä»¥ä¿åæ ç¾ï¼
ãããããã
ãããã
ãã.removeData(key):
ããããæè¿°ï¼ç§»é¤åæ¾å¨å ç´ ä¸çæ°æ®ï¼ä¸å keyåæ°è¡¨ç¤ºç§»é¤ææä¿åçæ°æ®ã
$("div").removeData("k"); //ç§»é¤å ç´ ä¸åæ¾k对åºçæ°æ®
ãããã
ããããå æä½ä¸ç»å¤§å®¶è¯´ä¸ä¸ï¼
ãããããã
ããããããæ°å¢æé®åç¼è¾æé®å¼¹åºçæ¯åä¸ä¸ªå¯¹è¯æ¡ï¼é颿¯åä¸ä¸ªæäº¤æé®ååæ¶æé®ï¼ä½ éè¦èèä¸ä¸å¦ä½åºåæ¯æ°å¢è¿æ¯ç¼è¾ï¼æ°å¢çæææ¯æ·»å ä¸è¡ï¼ç¼è¾çæææ¯ä¿®æ¹ä¹åçæ°æ®ã
ãããããã
ãããããä½ä¸ä»£ç 示ä¾ï¼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .cover { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, 0.3); z-index: 99; } .modal { width: 300px; height: 200px; background-color: white; position: absolute; top: 50%; left: 50%; margin-top: -100px; margin-left: -150px; z-index: 1000; } .hide { display: none; } .input-box { margin: 40px; } </style> </head> <body> <button id="add">æ°å¢</button> <table border="1"> <thead> <tr> <th>#</th> <th>å§å</th> <th>ç±å¥½</th> <th>æä½</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox"></td> <td>éèæ¿</td> <td>å¼è½¦</td> <td> <button class="fire">å¼é¤</button> <button class="edit">ç¼è¾</button> </td> </tr> <tr> <td><input type="checkbox"></td> <td>æ¯å¥³ç¥</td> <td>è¶é</td> <td> <button class="fire">å¼é¤</button> <button class="edit">ç¼è¾</button> </td> </tr> <tr> <td><input type="checkbox"></td> <td>èæï¼èå±ï¼</td> <td>䏿´å¤´ãä¸ç¿»è½¦ãä¸è¦è¸</td> <td> <button class="fire">å¼é¤</button> <button class="edit">ç¼è¾</button> </td> </tr> </tbody> </table> <div class="cover hide"></div> <div class="modal hide"> <div class="input-box"> <div> <label>å§åï¼ <input type="text" id="name"> </label> </div> <div> <label>ç±å¥½ï¼ <input type="text" id="hobby"> </label> </div> <button id="cancel" type="button">åæ¶</button> <button id="submit" type="button">æäº¤</button> </div> </div> <script src="jquery.js"></script> <script> // å®ä¹ä¸ä¸ªæ¸ 空è¾å ¥æ¡å¹¶ä¸éèæ¨¡ææ¡çæ¹æ³ function hideModal() { // 1. æ¸ ç©ºinputçå¼ $("#name,#hobby").val(''); // 2. éèèµ·æ¥ $(".cover,.modal").addClass('hide'); } // å®ä¹ä¸ä¸ªæ¾ç¤ºæ¨¡ææ¡çæ¹æ³ function showModal() { // 1. ç§»é¤coveråmodalçhideæ ·å¼ $(".cover,.modal").removeClass('hide'); } // å¼é¤æé®çåè½ $("table").on('click', '.fire', function () { // ç¹å»å¼é¤æé®è¦åçäºå¿ // æå½åè¡ç§»é¤æ //this --> 触åå½åç¹å»äºä»¶çDOM对象 $(this).parent().parent().remove(); // é¾å¼æä½ }); // æ°å¢æé®çåè½ $("#add").click(function () { // ç¹å»æ°å¢æé®è¦åçäºå¿ showModal(); }); // ç¹å»modalä¸çcancelæé® $("#cancel").click(function () { hideModal(); }); // ç¹å»modalä¸çsubmitæé® $("#submit").click(function () { // 1. è·åç¨æ·è¾å ¥çå¼ var name = $("#name").val(); var hobby = $("#hobby").val(); // å¤ææ¯æ·»å æä½è¿æ¯ç¼è¾æä½ var $editTr = $(this).data('xyh'); if ( $editTr === undefined) { // 3. å建ä¸ä¸ªtræ ç¾ï¼ææ°æ®å¡è¿å» var trEle = document.createElement("tr"); $(trEle).append('<td><input type="checkbox"></td>'); $(trEle).append('<td>' + name + '</td>'); var tdTmp = document.createElement('td'); tdTmp.innerText = hobby; $(trEle).append(tdTmp); $(trEle).append('<td><button class="fire">å¼é¤</button> <button class="edit">ç¼è¾</button></td>') // 4. æä¸ä¸æ¥çtr追å å°è¡¨æ ¼çtbodyåé¢ $('tbody').append(trEle); } else { // è¿å ¥ç¼è¾æ¨¡å¼ // 1. ååºç¨æ·ä¹åç¼è¾çé£ä¸è¡ // 2. ä¿®æ¹å¯¹åºtdçææ¬ $editTr.children().eq(1).text(name); $editTr.children().eq(2).text(hobby); // 3. æ¸ ç©ºsubmit æé®èº«ä¸çdata $('#submit').removeData('xyh'); } // 2. éèæ¨¡ææ¡ï¼æ¸ 空è¾å ¥æ¡ hideModal(); }); // ç¹å»ç¼è¾æé®è¦åçäºå¿ $('body').on('click', '.edit', function () { // 1. å¼¹åºæ¨¡ææ¡ showModal(); // 2. æå½åè¡çä¿¡æ¯æ¾ç¤ºå°æ¨¡ææ¡çinputä¸ // 2.1 è·åå½åè¡çå§ååç±å¥½ var $currentTr = $(this).parent().parent(); var nameValue = $currentTr.children().eq(1).text(); var hobbyValue = $currentTr.children().eq(2).text(); // 第äºç§æ¹å¼ï¼ // var name = $(this).parent().prev().prev().text(); // var hooby = $(this).parent().prev().text(); // 2.2 æä¸ä¸æ¥è·åçå¼è®¾ç½®ç»inputæ ç¾ $('#name').val(nameValue); $('#hobby').val(hobbyValue); // 3. ç»æ¨¡ææ¡ä¸çæäº¤æé®ç»å®ä¸ä¸ªdata $('#submit').data('xyh', $currentTr); }) </script> </body> </html>
ããæä»¶(äºè§£å³å¯)
ããããjQuery.extend(object)
ããããjQueryçå½å空é´ä¸æ·»å æ°çåè½ãå¤ç¨äºæä»¶å¼åè å jQuery 䏿·»å æ°å½æ°æ¶ä½¿ç¨ã
ãããã示ä¾ï¼
<script> jQuery.extend({ //$.extend({}) min:function(a, b){return a < b ? a : b;}, //èªå®ä¹äºä¸ä¸ªminåmaxæ¹æ³ï¼minåmaxä½ä¸ºé®ï¼å¼æ¯ä¸ä¸ªfunction max:function(a, b){return a > b ? a : b;} }); jQuery.min(2,3);// => 2 jQuery.max(4,5);// => 5 </script>
ããããjQuery.fn.extend(object)
ããããä¸ä¸ªå¯¹è±¡çå 容åå¹¶å°jQueryçååï¼ä»¥æä¾æ°çjQueryå®ä¾æ¹æ³ã
<script> jQuery.fn.extend({ //ç»ä»»æçjQueryæ ç¾å¯¹è±¡æ·»å ä¸ä¸ªæ¹æ³ check:function(){ return this.each(function(){this.checked =true;}); }, uncheck:function(){ return this.each(function(){this.checked =false;}); } }); // jQuery对象å¯ä»¥ä½¿ç¨æ°æ·»å çcheck()æ¹æ³äºã $("input[type='checkbox']").check(); </script>
ããããåç¬å卿件ä¸çæ©å±ï¼
(function(jq){ jq.extend({ funcName:function(){ ... }, }); })(jQuery);
ããããä¾åï¼jQueryçæä»¶é½æ¯è¿æ ·æ©å±åºæ¥ç
ããããèªå®ä¹çjQueryç»å½éªè¯æä»¶ï¼ï¼èªå·±ççï¼äºè§£ä¸ä¸å°±è¡äºï¼
ããããHTMLæä»¶
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ç»å½æ ¡éªç¤ºä¾</title> <style> .login-form { margin: 100px auto 0; max-width: 330px; } .login-form > div { margin: 15px 0; } .error { color: red; } </style> </head> <body> <div> <form action="" class="login-form" novalidate> <div> <label for="username">å§å</label> <input id="username" type="text" name="name" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="passwd">å¯ç </label> <input id="passwd" type="password" name="password" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="mobile">ææº</label> <input id="mobile" type="text" name="mobile" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="where">æ¥èª</label> <input id="where" type="text" name="where" autocomplete="off"> <span class="error"></span> </div> <div> <input type="submit" value="ç»å½"> </div> </form> </div> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script src="validate.js"></script> <script> $.validate(); </script> </body> </html>
ããããJSæä»¶ï¼
"use strict"; (function ($) { function check() { // å®ä¹ä¸ä¸ªæ å¿ä½ï¼è¡¨ç¤ºéªè¯éè¿è¿æ¯éªè¯ä¸éè¿ var flag = true; var errMsg; // æ ¡éªè§å $("form input[type!=':submit']").each(function () { var labelName = $(this).prev().text(); var inputName = $(this).attr("name"); var inputValue = $(this).val(); if ($(this).attr("required")) { // 妿æ¯å¿ 填项 if (inputValue.length === 0) { // å¼ä¸ºç©º errMsg = labelName + "ä¸è½ä¸ºç©º"; $(this).next().text(errMsg); flag = false; return false; } // 妿æ¯å¯ç ç±»åï¼æä»¬å°±è¦å¤æå¯ç çé¿åº¦æ¯å¦å¤§äº6ä½ if (inputName === "password") { // é¤äºä¸é¢å¤æä¸ºä¸ä¸ºç©ºè¿è¦å¤æå¯ç é¿åº¦æ¯å¦å¤§äº6ä½ if (inputValue.length < 6) { errMsg = labelName + "å¿ é¡»å¤§äº6ä½"; $(this).next().text(errMsg); flag = false; return false; } } // å¦ææ¯ææºç±»åï¼æä»¬éè¦å¤æææºçæ ¼å¼æ¯å¦æ£ç¡® if (inputName === "mobile") { // ä½¿ç¨æ£åè¡¨è¾¾å¼æ ¡éªinputValueæ¯å¦ä¸ºæ£ç¡®çææºå·ç if (!/^1[345678]\d{9}$/.test(inputValue)) { // 䏿¯ææçææºå·ç æ ¼å¼ errMsg = labelName + "æ ¼å¼ä¸æ£ç¡®"; $(this).next().text(errMsg); flag = false; return false; } } } }); return flag; } function clearError(arg) { // æ¸ ç©ºä¹åçé误æç¤º $(arg).next().text(""); } // ä¸é¢é½æ¯æå®ä¹çå·¥å ·å½æ° $.extend({ validate: function () { $("form :submit").on("click", function () { return check(); }); $("form :input[type!='submit']").on("focus", function () { clearError(this); }); } }); })(jQuery);
ããä¼ åçæä»¶ï¼
ããããHTMLæä»¶ï¼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ç»å½æ ¡éªç¤ºä¾</title> <style> .login-form { margin: 100px auto 0; max-width: 330px; } .login-form > div { margin: 15px 0; } .error { color: red; } </style> </head> <body> <div> <form action="" class="login-form" novalidate> <div> <label for="username">å§å</label> <input id="username" type="text" name="name" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="passwd">å¯ç </label> <input id="passwd" type="password" name="password" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="mobile">ææº</label> <input id="mobile" type="text" name="mobile" required autocomplete="off"> <span class="error"></span> </div> <div> <label for="where">æ¥èª</label> <input id="where" type="text" name="where" autocomplete="off"> <span class="error"></span> </div> <div> <input type="submit" value="ç»å½"> </div> </form> </div> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script src="validate3.js"></script> <script> $.validate({"name":{"required": true}, "password": {"required": true, "minLength": 8}, "mobile": {"required": true}}); </script> </body> </html>
ããããJSæä»¶:
"use strict"; (function ($) { function check(arg) { // å®ä¹ä¸ä¸ªæ å¿ä½ï¼è¡¨ç¤ºéªè¯éè¿è¿æ¯éªè¯ä¸éè¿ var flag = true; var errMsg; // æ ¡éªè§å $("form input[type!=':submit']").each(function () { var labelName = $(this).prev().text(); var inputName = $(this).attr("name"); var inputValue = $(this).val(); if (arg[inputName].required) { // 妿æ¯å¿ 填项 if (inputValue.length === 0) { // å¼ä¸ºç©º errMsg = labelName + "ä¸è½ä¸ºç©º"; $(this).next().text(errMsg); flag = false; return false; } // 妿æ¯å¯ç ç±»åï¼æä»¬å°±è¦å¤æå¯ç çé¿åº¦æ¯å¦å¤§äº6ä½ if (inputName === "password") { // é¤äºä¸é¢å¤æä¸ºä¸ä¸ºç©ºè¿è¦å¤æå¯ç é¿åº¦æ¯å¦å¤§äº6ä½ if (inputValue.length < arg[inputName].minLength) { errMsg = labelName + "å¿ é¡»å¤§äº"+arg[inputName].minLength+"ä½"; $(this).next().text(errMsg); flag = false; return false; } } // å¦ææ¯ææºç±»åï¼æä»¬éè¦å¤æææºçæ ¼å¼æ¯å¦æ£ç¡® if (inputName === "mobile") { // ä½¿ç¨æ£åè¡¨è¾¾å¼æ ¡éªinputValueæ¯å¦ä¸ºæ£ç¡®çææºå·ç if (!/^1[345678]\d{9}$/.test(inputValue)) { // 䏿¯ææçææºå·ç æ ¼å¼ errMsg = labelName + "æ ¼å¼ä¸æ£ç¡®"; $(this).next().text(errMsg); flag = false; return false; } } } }); return flag; } function clearError(arg) { // æ¸ ç©ºä¹åçé误æç¤º $(arg).next().text(""); } // ä¸é¢é½æ¯æå®ä¹çå·¥å ·å½æ° $.extend({ validate: function (arg) { $("form :submit").on("click", function () { return check(arg); }); $("form :input[type!='submit']").on("focus", function () { clearError(this); }); } }); })(jQuery);
ãã课åä¹ é¢ï¼
- ç»å½+éªè¯
- 左侧èå
- è¡¨æ ¼-å¢ãå ãæ¹ãæ¥
é®ç䏿¯ä¸ªæé®é½å¯¹åºæä¸ä¸ªkeyCodeå¼