ãå端ãJavaScript
ä¸ãJavaScriptæ¦è¿°
ãã1.JavaScriptçåå²
-
1992å¹´Nombaså¼ååºC-minus-minus(C--)çåµå ¥å¼èæ¬è¯è¨(æåç»å®å¨CEnvi软件ä¸).åå°å ¶æ¹åScriptEase.(客æ·ç«¯æ§è¡çè¯è¨)
-
Netscape(ç½æ¯)æ¥æ¶Nombasçç念,(Brendan Eich)å¨å ¶Netscape Navigator 2.0产åä¸å¼ååºä¸å¥livescriptçèæ¬è¯è¨.SunåNetscapeå ±å宿.åæ¹åå«Javascript
-
微软é忍¡ä»¿å¨å ¶IE3.0ç产åä¸æè½½äºä¸ä¸ªJavaScriptçå éçå«Jscript.
-
为äºç»ä¸ä¸å®¶,ECMA(æ¬§æ´²è®¡ç®æºå¶é åä¼)å®ä¹äºECMA-262è§è.å½é æ ååç»ç»åå½é çµå·¥å§åä¼ï¼ISO/IECï¼ä¹é纳 ECMAScript ä½ä¸ºæ åï¼ISO/IEC-16262ï¼ã仿¤ï¼Web æµè§å¨å°±å¼å§åªåï¼è½ç¶æçä¸åçç¨åº¦çæåå失败ï¼å° ECMAScript ä½ä¸º JavaScript å®ç°çåºç¡ãEcmaScriptæ¯è§è.
ãã2.ECMAScript
ãã尽管 ECMAScript æ¯ä¸ä¸ªéè¦çæ åï¼ä½å®å¹¶ä¸æ¯ JavaScript å¯ä¸çé¨åï¼å½ç¶ï¼ä¹ä¸æ¯å¯ä¸è¢«æ ååçé¨åãå®é ä¸ï¼ä¸ä¸ªå®æ´ç JavaScript å®ç°æ¯ç±ä»¥ä¸ 3 个ä¸åé¨åç»æçï¼
- æ ¸å¿ï¼ECMAScriptï¼
- ææ¡£å¯¹è±¡æ¨¡åï¼DOMï¼ Document object model (æ´åjsï¼cssï¼html)
- æµè§å¨å¯¹è±¡æ¨¡åï¼BOMï¼ Broswer object modelï¼æ´åjsåæµè§å¨ï¼
- Javascript å¨å¼åä¸ç»å¤§å¤æ°æ 嵿¯åºäºå¯¹è±¡ç.乿¯é¢å对象ç.
ããç®åå°è¯´ï¼ECMAScript æè¿°äºä»¥ä¸å 容ï¼
- è¯æ³
- ç±»å
- è¯å¥
- å ³é®å
- ä¿çå
- è¿ç®ç¬¦
- 对象 (å°è£ ç»§æ¿ å¤æ) åºäºå¯¹è±¡çè¯è¨.使ç¨å¯¹è±¡.
äºãJavaScriptçåºç¡
ãã1.JSçå¼å ¥æ¹å¼
1 ç´æ¥ç¼å <script> alert('hello yuan') </script> 2 å¯¼å ¥æä»¶ <script src="hello.js"></script>
ãã2.JSçåéã常éåæ è¯ç¬¦
ãã2.1ï¼JSçåé
ããï¼1ï¼å£°æåéæ¶ä¸ç¨å£°æåéç±»åï¼å ¨é½ä½¿ç¨varå ³é®åï¼
var a;<br>a=3;
ããï¼2ï¼ä¸è¡å¯ä»¥å£°æå¤ä¸ªåéï¼å¹¶ä¸å¯ä»¥æ¯ä¸åç±»å
var name="yuan", age=20, job="lecturer";
ããï¼3ï¼å£°æåéæ¶ï¼å¯ä»¥ä¸ç¨varï¼å¦æä¸ç¨varï¼é£ä¹å®æ¯å ¨å±åé
ããï¼4ï¼åéå½åï¼é¦å符åªè½æ¯åæ¯,ä¸å线,$ç¾å 符 ä¸éä¸ï¼ä½ä¸çå符å¯ä»¥æ¯ä¸å线ãç¾å ç¬¦å·æä»»ä½åæ¯ææ°åå符ä¸åºå大å°åï¼xä¸Xæ¯ä¸¤ä¸ªåéã
Camel æ è®°æ³ é¦åæ¯æ¯å°åçï¼æ¥ä¸æ¥ç忝é½ä»¥å¤§åå符å¼å¤´ãä¾å¦ï¼ var myTestValue = 0, mySecondValue = "hi"; Pascal æ è®°æ³ é¦åæ¯æ¯å¤§åçï¼æ¥ä¸æ¥ç忝é½ä»¥å¤§åå符å¼å¤´ãä¾å¦ï¼ Var MyTestValue = 0, MySecondValue = "hi"; åçå©ç±»åæ è®°æ³ å¨ä»¥ Pascal æ è®°æ³å½åçåéåéå ä¸ä¸ªå°ååæ¯ï¼æå°å忝åºåï¼ï¼è¯´æè¯¥åéçç±»åãä¾å¦ï¼i è¡¨ç¤ºæ´æ°ï¼s 表示å符串ï¼å¦ä¸æç¤ºâ Var iMyTestValue = 0, sMySecondValue = "hi";
ãã2.2ï¼å¸¸éåæ è¯ç¬¦
ãã常éï¼ç´æ¥å¨ç¨åºä¸åºç°çæ°æ®å¼
ããæ è¯ç¬¦ï¼
- ç±ä¸ä»¥æ°åå¼å¤´çåæ¯ãæ°åãä¸å线(_)ãç¾å 符å·($)ç»æ
- 常ç¨äºè¡¨ç¤ºå½æ°ãåéççåç§°
- ä¾å¦ï¼_abc,$abc,abc,abc123æ¯æ è¯ç¬¦ï¼è1abc䏿¯
- JavaScriptè¯è¨ä¸ä»£è¡¨ç¹å®å«ä¹çè¯ç§°ä¸ºä¿çåï¼ä¸å 许ç¨åºåå®ä¹ä¸ºæ è¯ç¬¦
ãã3.JSçæ°æ®ç±»å
ãã
number ----- æ°å¼ boolean ----- å¸å°å¼ string ----- å符串 undefined ----- undefined null ----- null
ãã3.1ï¼æ°åç±»åï¼numberï¼
ãã
- ä¸åºåæ´åæ°å¼åæµ®ç¹åæ°å¼;
- æææ°åé½éç¨64使µ®ç¹æ ¼å¼åå¨ï¼ç¸å½äºJavaåCè¯è¨ä¸çdoubleæ ¼å¼
- è½è¡¨ç¤ºçæå¤§å¼æ¯±1.7976931348623157 x 10308
- è½è¡¨ç¤ºçæå°å¼æ¯±5 x 10 -324 ã
æ´æ°ï¼
å¨JavaScriptä¸10è¿å¶çæ´æ°ç±æ°åçåºåç»æ
精确表达çèå´æ¯â¨-9007199254740992 (-253) å° 9007199254740992 (253)
è¶
åºèå´çæ´æ°ï¼ç²¾ç¡®åº¦å°åå½±å
æµ®ç¹æ°ï¼
使ç¨å°æ°ç¹è®°å½æ°æ®
ä¾å¦ï¼3.4ï¼5.6
ä½¿ç¨ææ°è®°å½æ°æ®
ä¾å¦ï¼4.3e23 = 4.3 x 1023
16è¿å¶å8è¿å¶æ°ç表达:
16è¿å¶æ°æ®åé¢å ä¸0xï¼å
«è¿å¶åé¢å 0;16è¿å¶æ°æ¯ç±0-9,A-Fç16个åç¬¦ç»æ;8è¿å¶æ°ç±0-7ç8个æ°åç»æ
ãã3.2ï¼å符串类åï¼stringï¼
ããæ¯ç±Unicodeåç¬¦ãæ°åãæ ç¹ç¬¦å·ç»æçåºåï¼å符串常éé¦å°¾ç±åå¼å·æåå¼å·æ¬èµ·ï¼JavaScript䏿²¡æå符类åï¼å¸¸ç¨ç¹æ®å符å¨å符串ä¸ç表达
ããå符串ä¸é¨åç¹æ®åç¬¦å¿ é¡»å ä¸å³ææ \ï¼å¸¸ç¨ç转ä¹å符ï¼
ãã\nï¼æ¢è¡ãã\'ï¼åå¼å·ãã\"ï¼åå¼å·ãã\\ï¼å³ææ
ãã3.3ï¼å¸å°ç±»åï¼booleanï¼
ããBooleanç±»åä» æä¸¤ä¸ªå¼ï¼trueåfalseï¼ä¹ä»£è¡¨1å0ï¼å®é è¿ç®ä¸true=1ï¼false=0
ããå¸å°å¼ä¹å¯ä»¥çä½on/offãyes/noã1/0对åºtrue/false
ããBooleanå¼ä¸»è¦ç¨äºJavaScriptçæ§å¶è¯å¥ï¼ä¾å¦ï¼
f (x==1){ y=y+1; }else{ y=y-1; }
ãã3.4ï¼Null & Undefinedç±»å
ããUndefinedç±»å
ããUndefined åªæä¸ä¸ªå¼ï¼å³undefinedãå½çå½çåéæªåå§åæ¶ï¼è¯¥åéçé»è®¤å¼æ¯undefinedãå½å½æ°æ æç¡®è¿å弿¶ï¼è¿åç乿¯å¼âundefinedâï¼
ããNullç±»å
ããå¦ä¸ç§åªæä¸ä¸ªå¼çç±»åæ¯Nullï¼å®åªæä¸ä¸ªä¸ç¨å¼nullï¼å³å®çåé¢éãå¼undefinedå®é 䏿¯ä»å¼nullæ´¾çæ¥çï¼å æ¤ECMAScriptæä»ä»¬å®ä¹ä¸ºç¸ççã
ãã尽管è¿ä¸¤ä¸ªå¼ç¸çï¼ä½å®ä»¬çå«ä¹ä¸åãundefinedæ¯å£°æäºåé使ªå¯¹å ¶åå§åæ¶èµäºè¯¥åéçå¼ï¼nullåç¨äºè¡¨ç¤ºå°æªåå¨ç对象ï¼å¨è®¨è®ºtypeofè¿ç®ç¬¦æ¶ï¼ç®åçä»ç»è¿è¿ä¸ç¹ï¼ã妿彿°ææ¹æ³è¦è¿åçæ¯å¯¹è±¡ï¼nameæ¾ä¸å°è¯¥å¯¹è±¡æ¶ï¼è¿åçé常æ¯nullã
ãã4.è¿ç®ç¬¦
ç®æ¯è¿ç®ç¬¦ï¼ + - * / % ++ï¼èªå ä¸ï¼ -- æ¯è¾è¿ç®ç¬¦ï¼ > >= < <= != == === !== é»è¾è¿ç®ç¬¦ï¼ && || ï¼ ï¼é»è¾ä¸æéï¼ èµå¼è¿ç®ç¬¦ï¼ = += -= *= /= å符串è¿ç®ç¬¦ï¼ + è¿æ¥ï¼ä¸¤è¾¹æä½æ°æä¸ä¸ªæä¸¤ä¸ªæ¯å符串就åè¿æ¥è¿ç®
ãã4.1ï¼ç®æ¯è¿ç®ç¬¦
ããï¼1ï¼èªå èªå
ããåå¦x=2ï¼é£ä¹x++è¡¨è¾¾å¼æ§è¡åçå¼ä¸º3ï¼x--è¡¨è¾¾å¼æ§è¡åçå¼ä¸º1ï¼i++ç¸å½äºi=i+1ï¼i--ç¸å½äºi=i-1ï¼
ããéå¢åéåè¿ç®ç¬¦å¯ä»¥æ¾å¨åéåä¹å¯ä»¥æ¾å¨åéåï¼--i
x++ï¼å èµå¼å计ç®ï¼ var ret=x++ï¼ret=10 ++xï¼å 计ç®åèµå¼ï¼ var ret=++xï¼ret=11
ããï¼2ï¼åå è¿ç®ç¬¦
- é¤äºå¯ä»¥è¡¨ç¤ºåå·è¿å¯ä»¥è¡¨ç¤ºè´å· ä¾å¦ï¼x=-y + é¤äºå¯ä»¥è¡¨ç¤ºå æ³è¿ç®è¿å¯ä»¥ç¨äºå符串çè¿æ¥ ä¾å¦ï¼"abc"+"def"="abcdef"
ããJSä¸åäºpythonï¼æ¯ä¸é¨å¼±ç±»åè¯è¨
éæç±»åè¯è¨ ä¸ç§å¨ç¼è¯æé´å°±ç¡®å®æ°æ®ç±»åçè¯è¨ã大夿°éæç±»åè¯è¨æ¯éè¿è¦æ±å¨ä½¿ç¨ä»»ä¸åéä¹å声æå ¶æ°æ®ç±»åæ¥ä¿è¯è¿ä¸ç¹çãJava å C æ¯éæç±»åè¯è¨ã å¨æç±»åè¯è¨ ä¸ç§å¨è¿è¡æé´æå»ç¡®å®æ°æ®ç±»åçè¯è¨ï¼ä¸éæç±»åç¸åãVBScript å Python æ¯å¨æç±»åçï¼å 为å®ä»¬ç¡®å®ä¸ä¸ªåéçç±»åæ¯å¨æ¨ç¬¬ä¸æ¬¡ç»å®èµå¼çæ¶åã 强类åè¯è¨ ä¸ç§æ»æ¯å¼ºå¶ç±»åå®ä¹çè¯è¨ãJava å Python æ¯å¼ºå¶ç±»åå®ä¹çãæ¨æä¸ä¸ªæ´æ°ï¼å¦æä¸æç¡®å°è¿è¡è½¬æ¢ ï¼ä¸è½å°æå®å½æä¸ä¸ªå符串å»åºç¨ã 弱类åè¯è¨ ä¸ç§ç±»åå¯ä»¥è¢«å¿½ç¥çè¯è¨ï¼ä¸å¼ºç±»åç¸åãJS æ¯å¼±ç±»åçãå¨JSä¸ï¼å¯ä»¥å°å符串 '12' åæ´æ° 3 è¿è¡è¿æ¥å¾å°å符串'123'ï¼ç¶åå¯ä»¥æå®çææ´æ° 123 ï¼ææè¿äºé½ä¸éè¦ä»»ä½çæ¾ç¤ºè½¬æ¢ã æä»¥è¯´ Python æ¢æ¯å¨æç±»åè¯è¨ (å 为å®ä¸ä½¿ç¨æ¾ç¤ºæ°æ®ç±»å声æ)ï¼åæ¯å¼ºç±»åè¯è¨ (å 为åªè¦ä¸ä¸ªåéè·å¾äºä¸ä¸ªæ°æ®ç±»åï¼å®å®é ä¸å°±ä¸ç´æ¯è¿ä¸ªç±»åäº)ã
ããï¼3ï¼NaN
var d="yuan"; d=+d; alert(d);//NaN:å±äºNumberç±»åçä¸ä¸ªç¹æ®å¼,å½éå°å°åç¬¦ä¸²è½¬ææ°åæ ææ¶,å°±ä¼å¾å°ä¸ä¸ªNaNæ°æ® alert(typeof(d));//Number //NaNç¹ç¹: var n=NaN; alert(n>3); alert(n<3); alert(n==3); alert(n==NaN); alert(n!=NaN);//NaNåä¸çææçè¿ç®é½æ¯false,é¤äº!=
ãã4.2ï¼æ¯è¾è¿ç®ç¬¦
> >= < <= != == === !==
ããç¨äºæ§å¶è¯å¥æ¶ï¼
if (2>1){ // 3 0 false null undefined [] console.log("æ¡ä»¶æç«!") }
ããçå·åéçå·çåç±»è¿ç®ç¬¦æ¯å ¨çå·åéå ¨çå·ãè¿ä¸¤ä¸ªè¿ç®ç¬¦æåçä¸çå·åéçå·ç¸åï¼åªæ¯å®ä»¬å¨æ£æ¥ç¸çæ§åï¼ä¸æ§è¡ç±»å转æ¢ã
console.log(2==2); console.log(2=="2"); #èªå¨æ§è¡ç±»åè½¬æ¢ console.log(2==="2"); #䏿§è¡ç±»åè½¬æ¢ console.log(2!=="2"); #䏿§è¡ç±»å转æ¢
注æ1ï¼
ããæ¯è¾è¿ç®ç¬¦ä¸¤ä¾§å¦æä¸ä¸ªæ¯æ°åç±»å,ä¸ä¸ªæ¯å ¶ä»ç±»å,ä¼å°å ¶ç±»åè½¬æ¢ææ°åç±»å.
ããæ¯è¾è¿ç®ç¬¦ä¸¤ä¾§å¦æé½æ¯å符串类å,æ¯è¾çæ¯æé«ä½çascç ,妿æé«ä½ç¸ç,ç»§ç»å第äºä½æ¯è¾.
注æ2ï¼
çæ§è¿ç®ç¬¦ï¼æ§è¡ç±»å转æ¢çè§åå¦ä¸ï¼ 妿ä¸ä¸ªè¿ç®æ°æ¯ Boolean å¼ï¼å¨æ£æ¥ç¸çæ§ä¹åï¼æå®è½¬æ¢ææ°åå¼ãfalse è½¬æ¢æ 0ï¼true 为 1ã 妿ä¸ä¸ªè¿ç®æ°æ¯å符串ï¼å¦ä¸ä¸ªæ¯æ°åï¼å¨æ£æ¥ç¸çæ§ä¹åï¼è¦å°è¯æåç¬¦ä¸²è½¬æ¢ææ°åã 妿ä¸ä¸ªè¿ç®æ°æ¯å¯¹è±¡ï¼å¦ä¸ä¸ªæ¯å符串ï¼å¨æ£æ¥ç¸çæ§ä¹åï¼è¦å°è¯æå¯¹è±¡è½¬æ¢æå符串ã 妿ä¸ä¸ªè¿ç®æ°æ¯å¯¹è±¡ï¼å¦ä¸ä¸ªæ¯æ°åï¼å¨æ£æ¥ç¸çæ§ä¹åï¼è¦å°è¯æå¯¹è±¡è½¬æ¢ææ°åã 卿¯è¾æ¶ï¼è¯¥è¿ç®ç¬¦è¿éµå®ä¸åè§åï¼ å¼ null å undefined ç¸çã 卿£æ¥ç¸çæ§æ¶ï¼ä¸è½æ null å undefined è½¬æ¢æå ¶ä»å¼ã 妿æä¸ªè¿ç®æ°æ¯ NaNï¼çå·å°è¿å falseï¼éçå·å°è¿å trueã å¦æä¸¤ä¸ªè¿ç®æ°é½æ¯å¯¹è±¡ï¼é£ä¹æ¯è¾çæ¯å®ä»¬çå¼ç¨å¼ãå¦æä¸¤ä¸ªè¿ç®æ°æååä¸å¯¹è±¡ï¼é£ä¹çå·è¿å trueï¼å¦å两个è¿ç®æ°ä¸çã
ãã5.æµç¨æ§å¶
ãã5.1ï¼é¡ºåºç»æ
ãã<script> console.log(âææä¸â); console.log(âææäºâ); console.log(âææä¸â); </script>
ãã5.2ï¼åæ¯ç»æ
ããif-elseç»æï¼
if (表达å¼){ è¯å¥ï¼; ...... }
else{ è¯å¥ï¼; ..... }
å¦æè¡¨è¾¾å¼çå¼ä¸ºtrueåæ§è¡è¯å¥1,å¦åæ§è¡è¯å¥2
ããif-elif-elseç»æï¼
if (表达å¼1) { è¯å¥1; }
else if (表达å¼2){ è¯å¥2; }
else if (表达å¼3){ è¯å¥3; }
else{ è¯å¥4; }
ããseitch-caseç»æ
ããswitchæ¯else ifç»ææ´å ç®æ´æ¸ æ°ï¼ä½¿ç¨åºå¯è¯»æ§æ´å¼º,æçæ´é«ã
switchåºæ¬æ ¼å¼ switch (表达å¼) { case å¼1:è¯å¥1;break; case å¼2:è¯å¥2;break; case å¼3:è¯å¥3;break; default:è¯å¥4; }
ãã
var week=3; switch (week){ case 1:console.log("礼æä¸");break; case 2:console.log("礼æ2");break; case 3:console.log("礼æ3");break; case 4:console.log("礼æ4");break; case 5:console.log("礼æ5");break; case 6:console.log("礼æ6");break; case 7:console.log("礼æ7");break; default:console.log("è¾å ¥é误") }
ãã5.2ï¼å¾ªç¯ç»æ
ããfor循ç¯ï¼æ¡ä»¶å¾ªç¯
è¯æ³è§åï¼ for(åå§è¡¨è¾¾å¼;æ¡ä»¶è¡¨è¾¾å¼;èªå¢æèªå) { æ§è¡è¯å¥ â¦â¦ }
ããåè½è¯´æï¼å®ç°æ¡ä»¶å¾ªç¯ï¼å½æ¡ä»¶æç«æ¶ï¼æ§è¡è¯å¥1ï¼å¦åè·³åºå¾ªç¯ä½
ããfor循ç¯çå¦ä¸ç§å½¢å¼ï¼éå循ç¯
for( åé in æ°ç»æå¯¹è±¡) { æ§è¡è¯å¥ â¦â¦ }
ããwhite循ç¯ï¼
è¯æ³è§åï¼ while (æ¡ä»¶){ è¯å¥1ï¼ ... }
ããåè½è¯´æï¼è¿è¡åè½åfor类似ï¼å½æ¡ä»¶æç«å¾ªç¯æ§è¡è¯å¥è±æ¬å·{}å çè¯å¥ï¼å¦åè·³åºå¾ªç¯ï¼åæ ·æ¯æcontinueä¸breakè¯å¥ã
ãã5.3ï¼å¼å¸¸å¤ç
try { //è¿æ®µä»£ç ä»ä¸å¾ä¸è¿è¡ï¼å ¶ä¸ä»»ä½ä¸ä¸ªè¯å¥æåºå¼å¸¸è¯¥ä»£ç åå°±ç»æè¿è¡ } catch (e) { // 妿try代ç å䏿åºäºå¼å¸¸ï¼catch代ç åä¸ç代ç å°±ä¼è¢«æ§è¡ã //eæ¯ä¸ä¸ªå±é¨åéï¼ç¨æ¥æåError对象æè å ¶ä»æåºç对象 } finally { //æ 论tryä¸ä»£ç æ¯å¦æå¼å¸¸æåºï¼çè³æ¯try代ç å䏿returnè¯å¥ï¼ï¼finally代ç åä¸å§ç»ä¼è¢«æ§è¡ã } 注ï¼ä¸»å¨æåºå¼å¸¸ throw Error('xxxx')
ä¸ãJavaScriptç对象
ããç®ä»ï¼
ããå¨JavaScriptä¸é¤äºnullåundefined以å¤å ¶ä»çæ°æ®ç±»åé½è¢«å®ä¹æäºå¯¹è±¡ï¼ä¹å¯ä»¥ç¨åå»ºå¯¹è±¡çæ¹æ³å®ä¹åéï¼StringãMathãArrayãDateãRegExp齿¯JavaScriptä¸éè¦çå 置对象ï¼å¨JavaScriptç¨åºå¤§å¤æ°åè½é½æ¯åºäºå¯¹è±¡å®ç°çã
<script language="javascript"> var aa=Number.MAX_VALUE; //å©ç¨æ°å对象è·åå¯è¡¨ç¤ºæå¤§æ° var bb=new String("hello JavaScript"); //å建å符串对象 var cc=new Date(); //åå»ºæ¥æå¯¹è±¡ var dd=new Array("ææä¸","ææäº","ææä¸","ææå"); //æ°ç»å¯¹è±¡ </script>
ãã
ãã3.1ï¼string对象
ãã3.1.1ï¼å符串对象å建
ããå符串对象å建ï¼ä¸¤ç§æ¹å¼ï¼
ããï¼1ï¼åé=âå符串â
ããï¼2ï¼å符串对象åç§°=newstringï¼å符串ï¼
var str1="hello world"; var str1= new String("hello word");
ãã3.1.2ï¼å符串对象ç屿§å彿°
x.length ï¼ï¼ï¼ï¼è·åå符串çé¿åº¦ x.toLowerCase() ï¼ï¼ï¼ï¼è½¬ä¸ºå°å x.toUpperCase() ï¼ï¼ï¼ï¼è½¬ä¸ºå¤§å x.trim() ï¼ï¼ï¼ï¼å»é¤åç¬¦ä¸²ä¸¤è¾¹ç©ºæ ¼ ï¼ï¼ï¼ï¼å符串æ¥è¯¢æ¹æ³ x.charAt(index) ï¼ï¼ï¼ï¼str1.charAt(index);ï¼ï¼ï¼ï¼è·åæå®ä½ç½®å符ï¼å ¶ä¸index为è¦è·åçåç¬¦ç´¢å¼ x.indexOf(findstr,index)ï¼ï¼ï¼ï¼æ¥è¯¢å符串ä½ç½® x.lastIndexOf(findstr) x.match(regexp) ï¼ï¼ï¼ï¼matchè¿åå¹é åç¬¦ä¸²çæ°ç»ï¼å¦ææ²¡æå¹é åè¿ånull x.search(regexp) ï¼ï¼ï¼ï¼searchè¿åå¹é å符串çé¦å符ä½ç½®ç´¢å¼ 示ä¾ï¼ var str1="welcome to the world of JS!"; var str2=str1.match("world"); var str3=str1.search("world"); alert(str2[0]); // ç»æä¸º"world" alert(str3); // ç»æä¸º15 ï¼ï¼ï¼ï¼åå符串å¤çæ¹æ³ x.substr(start, length) ï¼ï¼ï¼ï¼start表示å¼å§ä½ç½®ï¼length表示æªåé¿åº¦ x.substring(start, end) ï¼ï¼ï¼ï¼endæ¯ç»æä½ç½® x.slice(start, end) ï¼ï¼ï¼ï¼åçæä½å符串 示ä¾ï¼ var str1="abcdefgh"; var str2=str1.slice(2,4); var str3=str1.slice(4); var str4=str1.slice(2,-1); var str5=str1.slice(-3,-1); alert(str2); //ç»æä¸º"cd" alert(str3); //ç»æä¸º"efgh" alert(str4); //ç»æä¸º"cdefg" alert(str5); //ç»æä¸º"fg" x.replace(findstr,tostr) ï¼ï¼ï¼ï¼ åç¬¦ä¸²æ¿æ¢ x.split(); ï¼ï¼ï¼ï¼åå²å符串 var str1="ä¸,äº,ä¸,å,äº,å ,æ¥"; var strArray=str1.split(","); alert(strArray[1]);//ç»æä¸º"äº" x.concat(addstr) ï¼ï¼ï¼ï¼ æ¼æ¥å符串
ãã3.2ï¼Array对象
ãã3.2.1ï¼æ°ç»å建
ããå建æ°ç»çä¸ç§æ¹å¼ï¼
å建æ¹å¼1: var arrname = [å ç´ 0,å ç´ 1,â¦.]; // var arr=[1,2,3]; å建æ¹å¼2: var arrname = new Array(å ç´ 0,å ç´ 1,â¦.); // var test=new Array(100,"a",true); å建æ¹å¼3: var arrname = new Array(é¿åº¦); // åå§åæ°ç»å¯¹è±¡: var cnweek=new Array(7); cnweek[0]="æææ¥"; cnweek[1]="ææä¸"; ... cnweek[6]="ææå ";
var cnweek=new Array(7); for (var i=0;i<=6;i++){ cnweek[i]=new Array(2); } cnweek[0][0]="æææ¥"; cnweek[0][1]="Sunday"; cnweek[1][0]="ææä¸"; cnweek[1][1]="Monday"; ... cnweek[6][0]="ææå "; cnweek[6][1]="Saturday";
ãã3.2.2ï¼æ°ç»å¯¹è±¡ç屿§åæ¹æ³
ããï¼1ï¼joinæ¹æ³ï¼å°æ°ç»å ç´ æ¼æ¥æå符串
x.join(bystr) ï¼ï¼ï¼ï¼å°æ°ç»å ç´ æ¼æ¥æå符串 var arr1=[1, 2, 3, 4, 5, 6, 7]; var str1=arr1.join("-"); alert(str1); //ç»æä¸º"1-2-3-4-5-6-7"
ããï¼2ï¼concatæ¹æ³ï¼è¿æ¥ä¸¤ä¸ªå符串
ããtoStringæ¹æ³ï¼åçç±»æ¹æ³ï¼ï¼å°å¯¹è±¡è½¬æ¢æå符串
x.concat(value,...) ï¼ï¼ï¼ï¼ var a = [1,2,3]; var b=a.concat(4,5) ; alert(a.toString()); //è¿åç»æä¸º1,2,3 alert(b.toString()); //è¿åç»æä¸º1,2,3,4,5
ããï¼3ï¼æ°ç»æåº-reverseï¼åè½¬ï¼ sortï¼
//x.reverse() //x.sort() var arr1=[32, 12, 111, 444]; //var arr1=["a","d","f","c"]; arr1.reverse(); //é¢ åæ°ç»å ç´ alert(arr1.toString()); //ç»æä¸º444,111,12,32 arr1.sort(); //æåºæ°ç»å ç´ alert(arr1.toString()); //ç»æä¸º111,12,32,444ï¼sortæåºé»è®¤ä¼ä»¥æé«ä½çascç æ¥æ
ããï¼4ï¼æ°ç»åçæä½ï¼slice
//x.slice(start, end) // //ä½¿ç¨æ³¨è§£ // //x代表æ°ç»å¯¹è±¡ //start表示å¼å§ä½ç½®ç´¢å¼ //endæ¯ç»æä½ç½®ä¸ä¸æ°ç»å ç´ ç´¢å¼ç¼å· //第ä¸ä¸ªæ°ç»å ç´ ç´¢å¼ä¸º0 //startãendå¯ä¸ºè´æ°ï¼-1代表æåä¸ä¸ªæ°ç»å ç´ //endçç¥åç¸å½äºä»startä½ç½®æªå以忿æ°ç»å ç´ var arr1=['a','b','c','d','e','f','g','h']; var arr2=arr1.slice(2,4); var arr3=arr1.slice(4); var arr4=arr1.slice(2,-1); alert(arr2.toString()); //ç»æä¸º"c,d" alert(arr3.toString()); //ç»æä¸º"e,f,g,h" alert(arr4.toString()); //ç»æä¸º"c,d,e,f,g"
ããï¼5ï¼å é¤åæ°ç»ï¼splice
//x. splice(start, deleteCount, value, ...) //ä½¿ç¨æ³¨è§£ //x代表æ°ç»å¯¹è±¡ //spliceç主è¦ç¨éæ¯å¯¹æ°ç»æå®ä½ç½®è¿è¡å é¤åæå ¥ //start表示å¼å§ä½ç½®ç´¢å¼ //deleteCountå 餿°ç»å ç´ çä¸ªæ° //value表示å¨å é¤ä½ç½®æå ¥çæ°ç»å ç´ //valueåæ°å¯ä»¥çç¥ var a = [1,2,3,4,5,6,7,8]; a.splice(1,2); alert(a.toString());//aå为 [1,4,5,6,7,8] a.splice(1,1); alert(a.toString());//aå为[1,5,6,7,8] a.splice(1,0,2,3); alert(a.toString());//aå为[1,2,3,5,6,7,8]
ããï¼6ï¼æ°ç»çpushåpop
//push popè¿ä¸¤ä¸ªæ¹æ³æ¨¡æçæ¯ä¸ä¸ªæ æä½ //x.push(value, ...) åæ //x.pop() å¼¹æ //ä½¿ç¨æ³¨è§£ // //x代表æ°ç»å¯¹è±¡ //valueå¯ä»¥ä¸ºåç¬¦ä¸²ãæ°åãæ°ç»çä»»ä½å¼ //pushæ¯å°value弿·»å å°æ°ç»xçç»å°¾ //popæ¯å°æ°ç»xçæåä¸ä¸ªå ç´ å é¤ var arr1=[1,2,3]; arr1.push(4,5); alert(arr1); //ç»æä¸º"1,2,3,4,5" arr1.push([6,7]); alert(arr1) //ç»æä¸º"1,2,3,4,5,6,7" arr1.pop(); alert(arr1); //ç»æä¸º"1,2,3,4,5"
ããï¼7ï¼æ°ç»çshiftåunshift
//x.unshift(value,...) //x.shift() //ä½¿ç¨æ³¨è§£ //x代表æ°ç»å¯¹è±¡ //valueå¯ä»¥ä¸ºåç¬¦ä¸²ãæ°åãæ°ç»çä»»ä½å¼ //unshiftæ¯å°valueå¼æå ¥å°æ°ç»xçå¼å§ //shiftæ¯å°æ°ç»xç第ä¸ä¸ªå ç´ å é¤ var arr1=[1,2,3]; arr1.unshift(4,5); alert(arr1); //ç»æä¸º"4,5,1,2,3" arr1. unshift([6,7]); alert(arr1); //ç»æä¸º"6,7,4,5,1,2,3" arr1.shift(); alert(arr1); //ç»æä¸º"4,5,1,2,3"
ãã3.3ï¼Date对象
ãã3.3.1ï¼å建date对象
//æ¹æ³1ï¼ä¸æå®åæ° var nowd1=new Date(); alert(nowd1.toLocaleString( )); //æ¹æ³2ï¼åæ°ä¸ºæ¥æå符串 var nowd2=new Date("2004/3/20 11:12"); alert(nowd2.toLocaleString( )); var nowd3=new Date("04/03/20 11:12"); alert(nowd3.toLocaleString( )); //æ¹æ³3ï¼åæ°ä¸ºæ¯«ç§æ° var nowd3=new Date(5000); alert(nowd3.toLocaleString( )); alert(nowd3.toUTCString()); //æ¹æ³4ï¼åæ°ä¸ºå¹´ææ¥å°æ¶åéç§æ¯«ç§ var nowd4=new Date(2004,2,20,11,12,0,300); alert(nowd4.toLocaleString( ));//毫ç§å¹¶ä¸ç´æ¥æ¾ç¤º
ãã3.3.2ï¼Dateå¯¹è±¡çæ¹æ³--è·åæ¥æåæ¶é´
è·åæ¥æåæ¶é´ getDate() è·åæ¥ getDay () è·åææ getMonth () è·åæï¼0-11ï¼ getFullYear () è·å宿´å¹´ä»½ getYear () è·åå¹´ getHours () è·åå°æ¶ getMinutes () è·ååé getSeconds () è·åç§ getMilliseconds () è·åæ¯«ç§ getTime () è¿åç´¯è®¡æ¯«ç§æ°(ä»1970/1/1åå¤)
ãã3.3.3ï¼Dateå¯¹è±¡çæ¹æ³âè®¾ç½®æ¥æåæ¶é´
//è®¾ç½®æ¥æåæ¶é´ //setDate(day_of_month) è®¾ç½®æ¥ //setMonth (month) 设置æ //setFullYear (year) 设置年 //setHours (hour) è®¾ç½®å°æ¶ //setMinutes (minute) 设置åé //setSeconds (second) è®¾ç½®ç§ //setMillliseconds (ms) 设置毫ç§(0-999) //setTime (allms) 设置累计毫ç§(ä»1970/1/1åå¤) var x=new Date(); x.setFullYear (1997); //设置年1997 x.setMonth(7); //设置æ7 x.setDate(1); //设置æ¥1 x.setHours(5); //è®¾ç½®å°æ¶5 x.setMinutes(12); //设置åé12 x.setSeconds(54); //设置ç§54 x.setMilliseconds(230); //设置毫ç§230 document.write(x.toLocaleString( )+"<br>"); //è¿å1997å¹´8æ1æ¥5ç¹12å54ç§ x.setTime(870409430000); //è®¾ç½®ç´¯è®¡æ¯«ç§æ° document.write(x.toLocaleString( )+"<br>"); //è¿å1997å¹´8æ1æ¥12ç¹23å50ç§
ãã3.4ï¼Math对象
//该对象ä¸ç屿§æ¹æ³ åæ°å¦æå ³. abs(x) è¿åæ°çç»å¯¹å¼ã exp(x) è¿å e çææ°ã floor(x)对æ°è¿è¡ä¸èå ¥ã log(x) è¿åæ°çèªç¶å¯¹æ°ï¼åºä¸ºeï¼ã max(x,y) è¿å x å y ä¸çæé«å¼ã min(x,y) è¿å x å y ä¸çæä½å¼ã pow(x,y) è¿å x ç y 次å¹ã random() è¿å 0 ~ 1 ä¹é´çéæºæ°ã round(x) ææ°åèäºå ¥ä¸ºææ¥è¿çæ´æ°ã sin(x) è¿åæ°çæ£å¼¦ã sqrt(x) è¿åæ°çå¹³æ¹æ ¹ã tan(x) è¿åè§çæ£åã //æ¹æ³ç»ä¹ : //alert(Math.random()); // è·å¾éæºæ° 0~1 ä¸å æ¬1. //alert(Math.round(1.5)); // åèäºå ¥ //ç»ä¹ ï¼è·å1-100çéæºæ´æ°ï¼å æ¬1å100 //var num=Math.random(); //num=num*10; //num=Math.round(num); //alert(num) //============max min========================= /* alert(Math.max(1,2));// 2 alert(Math.min(1,2));// 1 */ //-------------pow-------------------------------- alert(Math.pow(2,4));// pow 计ç®åæ°1 çåæ°2 次æ¹.
ãã3.5ï¼Function对象ï¼éç¹ï¼
ãã3.5.1ï¼å½æ°çå®ä¹
function 彿°å (åæ°){â¨<br> 彿°ä½; return è¿åå¼; }
ããåè½è¯´æï¼
ããå¯ä»¥ä½¿ç¨åéã常éæè¡¨è¾¾å¼ä½ä¸ºå½æ°è°ç¨çåæ°ï¼
ãã彿°ç±å ³é®åfunctionå®ä¹ï¼
ãã彿°åçå®ä¹è§å䏿 è¯ç¬¦ä¸è´ï¼å¤§å°åæ¯ææçï¼
ããè¿åå¼å¿ 须使ç¨returnï¼
ããfunctionç±»å¯ä»¥è¡¨ç¤ºå¼åè å®ä¹çä»»ä½å½æ°ã
ããç¨Functionç±»ç´æ¥åå»ºå½æ°çè¯æ³å¦ä¸ï¼
var 彿°å = new Function("åæ°1","åæ°n","function_body");
ããè½ç¶ç±äºå符串çå ³ç³»ï¼ç¬¬äºç§å½¢å¼åèµ·æ¥æäºå°é¾ï¼ä½æå©äºçè§£å½æ°åªä¸è¿æ¯ä¸ç§å¼ç¨ç±»åï¼å®ä»¬çè¡ä¸ºä¸ç¨Functionç±»æç¡®å建ç彿°è¡ä¸ºæ¯ç¸åç
function func1(name){ alert('hello'+name); return 8 } ret=func1("alex"); alert(ret);
var func2=new Function("name","alert(\"hello\"+name);") func2("amos")
ããæ³¨æï¼jsç彿°å è½½æ§è¡ä¸pythonä¸åï¼å®æ¯æ´ä½å è½½å®æä¼æ§è¡ï¼æä»¥æ§è¡å½æ°æ¾å¨å½æ°å£°æä¸é¢æä¸é¢é½å¯ä»¥
ãã3.5.2ï¼å½æ°çå 置对象arguments
ããargumentsï¼å¯ä»¥æ¥æ¶ä»»ä½åæ°ï¼ç¸å½äºpythonç*args
function add(a,b){ console.log(a+b);//3 console.log(arguments.length);//2 console.log(arguments);//[1,2] } add(1,2) ------------------argumentsçç¨å¤1 ------------------ function nxAdd(){ var result=0; for (var num in arguments){ result+=arguments[num] } alert(result) } nxAdd(1,2,3,4,5) // ------------------argumentsçç¨å¤2 ------------------ function f(a,b,c){ if (arguments.length!=3){ throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments") } else { alert("success!") } } f(1,2,3,4,5)
ãã3.5.3ï¼å¿å彿°
// å¿å彿° var func = function(arg){ return "tony"; } // å¿å彿°çåºç¨ (function(){ alert("tony"); } )() (function(arg){ console.log(arg); })('123')
åãBOM对象
ãwindowï¼çªå£ï¼å¯¹è±¡
æææµè§å¨é½æ¯æ window 对象ã
æ¦å¿µä¸è®².ä¸ä¸ªhtmlææ¡£å¯¹åºä¸ä¸ªwindow对象.
åè½ä¸è®²: æ§å¶æµè§å¨çªå£ç.
使ç¨ä¸è®²: window对象ä¸éè¦å建对象,ç´æ¥ä½¿ç¨å³å¯.
ãã4.1ï¼windowå¯¹è±¡æ¹æ³
alert() æ¾ç¤ºå¸¦æä¸æ®µæ¶æ¯åä¸ä¸ªç¡®è®¤æé®çè¦åæ¡ã confirm() æ¾ç¤ºå¸¦æä¸æ®µæ¶æ¯ä»¥å确认æé®ååæ¶æé®çå¯¹è¯æ¡ã prompt() æ¾ç¤ºå¯æç¤ºç¨æ·è¾å ¥çå¯¹è¯æ¡ã open() æå¼ä¸ä¸ªæ°çæµè§å¨çªå£ææ¥æ¾ä¸ä¸ªå·²å½åççªå£ã close() å ³éæµè§å¨çªå£ã setInterval() æç §æå®ç卿ï¼ä»¥æ¯«ç§è®¡ï¼æ¥è°ç¨å½æ°æè®¡ç®è¡¨è¾¾å¼ã clearInterval() åæ¶ç± setInterval() 设置ç timeoutã setTimeout() 卿å®çæ¯«ç§æ°åè°ç¨å½æ°æè®¡ç®è¡¨è¾¾å¼ã clearTimeout() åæ¶ç± setTimeout() æ¹æ³è®¾ç½®ç timeoutã scrollTo() æå 容æ»å¨å°æå®çåæ ã
ããæ¹æ³ä½¿ç¨
ããsetIntervalï¼clearInterval
ããsetinterval()æ¹æ³ä¼ä¸åå°è°ç¨å½æ°ï¼ç´å°clearInterval()被è°ç¨æè çªå£è¢«å ³éãç±setintervalï¼ï¼è¿åçIDå¼å¯ä½clearintervalï¼ï¼æ¹æ³çåæ°ã
è¯æ³ï¼setInterval(code,millisec) å ¶ä¸ï¼code为è¦è°ç¨ç彿°æè¦æ§è¡ç代ç 串ãmillisecå¨ææ§æ§è¡æè°ç¨ code ä¹é´çæ¶é´é´éï¼ä»¥æ¯«ç§è®¡ã
<!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</title> <script> var ID; function start() { if (ID==undefined){ foo(); ID=setInterval(foo,1000) } } function foo() { var timer=new Date().toString(); //è·åå½åæ¶é´å符串 var ele=document.getElementById("time"); // è·åæä½æ ç¾å¯¹è±¡ ele.value=timer; // 对æä½æ ç¾å¯¹è±¡è¿è¡èµå¼ } function end() { clearInterval(ID); ID=undefined } </script> </head> <body> <input type="text" id="time"> <button οnclick="start()">start</button> <button οnclick="end()">end</button> </body> </html>
äºãDOM对象
ãã5.1ï¼ä»ä¹æ¯HTML DOM
- HTML Document Object Modelï¼ææ¡£å¯¹è±¡æ¨¡åï¼
- HTML DOM å®ä¹äºè®¿é®åæä½HTMLææ¡£çæ åæ¹æ³
- HTML DOM æ HTML ææ¡£åç°ä¸ºå¸¦æå ç´ ã屿§åææ¬çæ ç»æï¼èç¹æ )
ãã5.2ï¼DOMæ
ãã
ãã5.3ï¼DOMèç¹
ãã5.3.1ï¼èç¹ç±»å
ããHTMLææ¡£ä¸çæ¯ä¸ªæå齿¯ä¸ä¸ªèç¹ã
ããDOMæ¯è¿æ ·è§å®çï¼
- æ´ä¸ªææ¡£æ¯ä¸ä¸ªææ¡£èç¹
- æ¯ä¸ªHTMLæ ç¾æ¯ä¸ä¸ªå ç´ èç¹
- å å«å¨HTMLå ç´ ä¸çææ¬æ¯ææ¬èç¹
- æ¯ä¸ä¸ªHTML屿§æ¯ä¸ä¸ªå±æ§èç¹
ãã
ããå ¶ä¸ï¼documentä¸elementèç¹æ¯éç¹ã
ãã5.3.2ï¼èç¹å ³ç³»
ããèç¹æ ä¸çèç¹å½¼æ¤æ¥æå±çº§å ³ç³»ã
ããç¶(parent),å(child)ååè(sibling)çæ¯è¯ç¨äºæè¿°è¿äºå ³ç³»ãç¶èç¹æ¥æåèç¹ãå级çåèç¹è¢«ç§°ä¸ºåèï¼å 弿å§å¦¹ï¼ã
- å¨èç¹æ ä¸ï¼é¡¶ç«¯èç¹è¢«ç§°ä¸ºæ ¹ï¼rootï¼
- æ¯ä¸ªèç¹é½æç¶èç¹ãé¤äºæ ¹ï¼å®æ²¡æç¶èç¹ï¼
- ä¸ä¸ªèç¹å¯æ¥æä»»ææ°éçå
- åèæ¯æ¥æç¸åç¶èç¹çèç¹
ãã5.3.3ï¼èç¹æ¥æ¾
ããç´æ¥æ¥æ¾èç¹
document.getElementById(âidnameâ) #éè¿IDæ¥æ¾ ä¸é¢çååºæ¥æ¯å¤ä¸ªæ ç¾ï¼ä»¥æ°ç»ç形弿¾ç¤º document.getElementsByTagName(âtagnameâ) #éè¿æ ç¾åæ¥æ¾ document.getElementsByName(ânameâ) #éè¿nameæ¥æ¾ document.getElementsByClassName(ânameâ) #éè¿classæ¥æ¾
ãã导èªèç¹å±æ§
parentElement // ç¶èç¹æ ç¾å ç´ children // ææåæ ç¾ firstElementChild // 第ä¸ä¸ªåæ ç¾å ç´ lastElementChild // æåä¸ä¸ªåæ ç¾å ç´ nextElementtSibling // ä¸ä¸ä¸ªå 弿 ç¾å ç´ previousElementSibling // ä¸ä¸ä¸ªå 弿 ç¾å ç´ æ³¨æï¼js䏿²¡æåæ³æ¾å°ææçå 弿 ç¾ï¼ å¯ä»¥æ¾å°ææç¶æ ç¾çåæ ç¾ï¼ç¶åæé¤èªå·±
ãã5.3.4ï¼èç¹æä½
ããï¼1ï¼å建èç¹
createElement(æ ç¾å) ï¼å建ä¸ä¸ªæå®åç§°çå ç´ ã ä¾ï¼var tag=document.createElement(âinput") tag.setAttribute('type','text');
ããï¼2ï¼æ·»å èç¹ï¼ç¶èç¹æ·»å åèç¹
追å ä¸ä¸ªåèç¹ï¼ä½ä¸ºæåçåèç¹ï¼ ç¶æ ç¾.appendChild(æ·»å æ ç¾) æå¢å çèç¹æ¾å°æä¸ªèç¹çåè¾¹ #å å¼ä¹é´çæ·»å somenode.insertBefore(newnode,æä¸ªèç¹);
ããï¼3ï¼å é¤èç¹ï¼ç¶èç¹å é¤åèç¹
ç¶æ ç¾.removeChild(è¦å é¤çæ ç¾)ï¼è·å¾è¦å é¤çå ç´ ï¼éè¿ç¶å ç´ è°ç¨å é¤
ããï¼4ï¼æ¿æ¢èç¹
ç¶æ ç¾.replaceChild(æ°èç¹, ç¶æ ç¾ä¸çæä¸ªèç¹);
ããï¼5ï¼æ·è´èç¹
cloneNode():æµ æ·è´ï¼åªæ·è´æ ç¾ cloneNode(true)ï¼æ·±æ·è´ï¼è¿åæ ç¾å çæ ç¾ä¹ä¸èµ·æ·è´è¿å» 注æï¼æ·è´ä¼æID乿·è´è¿å»
ããï¼6ï¼èç¹å±æ§æä½
ãã1.è·åææ¬èç¹çå¼ï¼
innerTextï¼ä¸è®¤æ ç¾ï¼åªè®¤ææ¬ï¼ï¼èµå¼æ¶é½ä¼èµæçº¯ææ¬ innerHTMLï¼æ ç¾ææ¬é½å¯ä»¥è¯å«ï¼ï¼èµå¼æ¶å¯ä»¥èµæ ç¾ï¼ é½ä¼å é¤åæ¥çå 容ç¶åæ·»å å 容
ãã2.å弿ä½ï¼
æ¹å¼ä¸ï¼
element.getAttributeï¼å±æ§åï¼ï¼å¯ä»¥åå°èªå®ä¹å±æ§ï¼
æ¹å¼äºï¼ element.屿§åï¼æ¨èï¼åªè½åå°åºæå±æ§ï¼åä¸å°èªå®ä¹å±æ§ï¼
æ¹å¼ä¸ï¼
element.setAttributeï¼å±æ§åï¼å±æ§å¼ï¼
æ¹å¼äºï¼
element.屿§å="屿§å¼"
ãã4.selectæ ç¾æä½
this.selectedIndex æ¿å°åç¨æ·é䏿 ç¾ç´¢å¼ this.options ç¸å½äºæ¿å°åæ ç¾ this.options[this.selectedIndex].innerText æ¿å°é䏿 ç¾çå¼ ele_select.options.length=0 æ¸ ç©ºselectæ ç¾çéåï¼å¯ä»¥è®¾å®ä¿çå 个å¼
ãã5.4ï¼DOM Eventï¼äºä»¶ï¼
ãã5.4.1ï¼äºä»¶ç±»åï¼äºä»¶é½æ¯ç±æä½ç³»ç»çå¬ç
onclick å½ç¨æ·ç¹å»æä¸ªå¯¹è±¡æ¶è°ç¨çäºä»¶å¥æã ondblclick å½ç¨æ·åå»æä¸ªå¯¹è±¡æ¶è°ç¨çäºä»¶å¥æã onfocus å ç´ è·å¾ç¦ç¹ã ç»ä¹ ï¼è¾å ¥æ¡ onblur å ç´ å¤±å»ç¦ç¹ã åºç¨åºæ¯ï¼ç¨äºè¡¨åéªè¯,ç¨æ·ç¦»å¼æä¸ªè¾å ¥æ¡æ¶,代表已ç»è¾å ¥å®äº,æä»¬å¯ä»¥å¯¹å®è¿è¡éªè¯. onchange åçå 容被æ¹åï¼ä¸»è¦åºç¨äºselectæ ç¾ï¼ã åºç¨åºæ¯ï¼é常ç¨äºè¡¨åå ç´ ,å½å ç´ å 容被æ¹åæ¶è§¦å.ï¼ä¸çº§èå¨ï¼ onkeydown æä¸ªé®çæé®è¢«æä¸ã åºç¨åºæ¯: å½ç¨æ·å¨æåä¸ä¸ªè¾å ¥æ¡æä¸å车æé®æ¶,表åæäº¤. onkeypress æä¸ªé®çæé®è¢«æä¸å¹¶æ¾å¼ã onkeyup æä¸ªé®çæé®è¢«æ¾å¼ã window.onload ä¸å¼ 页颿ä¸å¹ å¾å宿å è½½ã onmousedown é¼ æ æé®è¢«æä¸ãåonclickä¸åçæ¯ä»éé¢è¿å¯ä»¥é åonmousemoveä½¿ç¨ onmousemove é¼ æ 被移å¨ã onmouseout é¼ æ 仿å ç´ ç§»å¼ã onmouseover é¼ æ ç§»å°æå ç´ ä¹ä¸ã onmouseleave é¼ æ ä»å ç´ ç¦»å¼ //onmouseoutåonmouseleaveçåºå« // 1.ä¸è®ºé¼ æ æé离å¼è¢«éå ç´ è¿æ¯ä»»ä½åå ç´ ï¼é½ä¼è§¦å mouseout äºä»¶ã // 2.åªæå¨é¼ æ æé离å¼è¢«éå ç´ æ¶ï¼æä¼è§¦å mouseleave äºä»¶ã onselect ææ¬è¢«éä¸ã onsubmit 确认æé®è¢«ç¹å»ï¼ç¨äºform表åï¼ã
ãã5.4.2ï¼ç»å®äºä»¶æ¹å¼
ããæ¹å¼ä¸ï¼
<div id="div" οnclick="foo(this)">ç¹æå</div> <script> function foo(self){ // å½¢åä¸è½æ¯this; console.log("ç¹ä½ 大ç·!"); console.log(self); } </script>
ããæ¹å¼äº
<p id="abc">è¯ä¸è¯!</p> <script> var ele=document.getElementById("abc"); ele.οnclick=function(){ console.log("ok"); console.log(this); // thisç´æ¥ç¨ }; </script>
ãã5.4.3ï¼äºä»¶ä»ç»
ãã1.onloadï¼
ããonload屿§å¨å¼åä¸åªç»bodyå ç´ å ï¼è¿ä¸ªå±æ§çè§¦åæ å¿ç页é¢å 容被å è½½å®æï¼åºç¨åºæ¯ï¼å½æäºäºæ æä»¬å¸æé¡µé¢å è½½å®ç«å»æ§è¡ï¼é£ä¹å¯ä»¥ä½¿ç¨è¯¥äºä»¶å±æ§ã
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> window.οnlοad=function () { var ele=document.getElementById("c1"); ele.style.color="green"; }; </script> </head> <body> <div id="c1">div</div> </body> </html>
ãã2.onsubmitï¼
ããå½è¡¨åå¨æäº¤æ¶è§¦åï¼è¯¥å±æ§ä¹åªè½ç»formå ç´ ä½¿ç¨ï¼åºç¨åºæ¯ï¼å¨è¡¨åæäº¤éªè¯ç¨æ·è¾å ¥æ¯å¦æ£ç¡®ï¼å¦æéªè¯å¤±è´¥ï¼å¨è¯¥æ¹æ³ä¸æä»¬åºè¯¥é»æ¢è¡¨åçæäº¤
<!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</title> </head> <body> <form action="" id="form"> <p>å§å <input type="text" id="name"></p> <p>å¯ç <input type="password" id="psw"></p> <input type="submit"> </form> <script> var ele_form=document.getElementById("form"); var ele_name=document.getElementById("name"); var ele_psw=document.getElementById("psw"); ele_form.οnsubmit=function () { if (ele_name.value.length < 5){ var ele_err=document.createElement("span"); ele_err.innerHTML="è¾å ¥åç¬¦å¿ é¡»å¤§äº5"; ele_err.style.color="red"; ele_form.appendChild(ele_err); return false } } </script> </body> </html>
ãã3.äºä»¶ä¼ æï¼
<!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</title> <style> .outer{ width: 400px; height: 400px; background-color: #396bb3; } .inner{ width: 200px; height: 200px; background-color: #e59373; } </style> </head> <body> <div class="outer"> <div class="inner"></div> </div> </body> <script> var ele_outer=document.getElementsByClassName("outer")[0]; var ele_inner=document.getElementsByClassName("inner")[0]; ele_outer.οnclick=function () { alert(123) }; ele_inner.οnclick=function (e) { alert(456); e.stopPropagation() //黿¢äºä»¶ä¼ æ } </script> </html>
ãã4.onselectï¼ææ¬è¢«é䏿¶
<input type="text"> <script> var ele=document.getElementsByTagName("input")[0]; ele.οnselect=function(){ alert(123); } </script>
ãã5.onchange
<select name="" id=""> <option value="">111</option> <option value="">222</option> <option value="">333</option> </select> <script> var ele=document.getElementsByTagName("select")[0]; ele.οnchange=function(){ alert(123); } </script>
ãã6.onkeydownï¼
ããEvent对象ï¼Event对象代表äºä»¶çç¶æï¼æ¯å¦äºä»¶å¨å ¶ä¸åççå ç´ ãé®çæé®çç¶æãé¼ æ çä½ç½®ãé¼ æ æé®çç¶æã
ããäºä»¶é常ä¸å½æ°ç»å使ç¨ï¼å½æ°ä¸ä¼å¨äºä»¶åçå被æ§è¡ï¼event对象å¨äºä»¶åçæ¶ç³»ç»å·²ç»å建好äºï¼å¹¶ä¸ä¼å¨äºä»¶å½æ°è¢«è°ç¨æ¶ä¼ ç»äºä»¶å½æ°ï¼æä»¬è·å¾ä» ä» éè¦æ¥æ¶ä¸ä¸å³å¯ï¼æ¯å¦onkeydownï¼æä»¬æ³ç¥éåªä¸ªé®è¢«æä¸äºï¼éè¦é®ä¸event对象ç屿§ï¼è¿éå°±æ¯keyCodeã
<!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</title> </head> <body> <input type="text" id="user"> </body> <script> var ele=document.getElementById("user"); // event对象æ¯ä¿åäºä»¶è§¦åç¶æç对象ï¼ç±æä½ç³»ç»åé ele.οnkeydοwn=function (e) { e=e||window.event; console.log(String.fromCharCode(e.keyCode)); //e.keyCodeæ¿å°çæ¯æä¸é®çascç ï¼ç¶åç¨String.fromCharCodeæ¹æ³æ¿å°ç¨æ·æä¸çé® } </script> </html>
ãã7.onmouseoutä¸onmouseleaveäºä»¶çåºå«ï¼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #container{ width: 300px; } #title{ cursor: pointer; background: #ccc; } #list{ display: none; background:#fff; } #list div{ line-height: 50px; } #list .item1{ background-color: green; } #list .item2{ background-color: rebeccapurple; } #list .item3{ background-color: lemonchiffon; } </style> </head> <body> <p>å çä¸ä½¿ç¨mouseoutçææ:</p> <div id="container"> <div id="title">使ç¨äºmouseoutäºä»¶â</div> <div id="list"> <div class="item1">第ä¸è¡</div> <div class="item2">第äºè¡</div> <div class="item3">第ä¸è¡</div> </div> </div> <script> // 1.ä¸è®ºé¼ æ æé离å¼è¢«éå ç´ è¿æ¯ä»»ä½åå ç´ ï¼é½ä¼è§¦å mouseout äºä»¶ã // 2.åªæå¨é¼ æ æé离å¼è¢«éå ç´ æ¶ï¼æä¼è§¦å mouseleave äºä»¶ã var container=document.getElementById("container"); var title=document.getElementById("title"); var list=document.getElementById("list"); title.οnmοuseοver=function(){ list.style.display="block"; }; container.οnmοuseleave=function(){ // æ¹ä¸ºmouseoutè¯ä¸ä¸ list.style.display="none"; }; /* å 为mouseoutäºä»¶æ¯ä¼å泡çï¼ä¹å°±æ¯onmouseoutäºä»¶å¯è½è¢«åæ¶ç»å®å°äºcontainerçåå ç´ titleålist ä¸ï¼æä»¥é¼ æ ç§»åºæ¯ä¸ªåå ç´ æ¶ä¹é½ä¼è§¦åæä»¬çlist.style.display="none"; */ /* æè: if: list.οnmοuseοut=function(){ list.style.display="none"; }; 为ä»ä¹ç§»åºç¬¬ä¸è¡æ¶,æ´ä¸ªlistä¼è¢«éè? å ¶å®æ¯åæ ·çéç,onmouseoutäºä»¶è¢«åæ¶ç»å®å°liståå®çä¸ä¸ªåå ç´ itemä¸,æä»¥ç¦»å¼ä»»ä½ä¸ä¸ª åå ç´ åæ ·ä¼è§¦ålist.style.display="none"; */ </script> </body> </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</title> </head> <body> <select name="" id="s1"> <option value="">è¯·éæ©ç份</option> <option value="">山西</option> <option value="">æ²³å</option> </select> <select name="" id="s2"> <option value="">è¯·éæ©åå¸</option> </select> </body> <script> data={"山西":["太å","鳿³","大å"],"æ²³å":["ç³å®¶åº","é¯é¸"]}; var ele=document.getElementById("s1"); var ele2=document.getElementById("s2"); ele.οnchange=function () { ele2.options.length=0; var ele_pro=this.children[this.selectedIndex].innerText; for (var i in data){ if (i==ele_pro){ for (var j in data[i]){ var city= document.createElement("option"); city.innerHTML=data[i][j]; ele2.appendChild(city) } } } } </script> </html>
ãã2.模æå¯¹è¯æ¡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .back{ background-color: white; height: 2000px; } .shade{ position: fixed; top: 0; bottom: 0; left:0; right: 0; background-color: grey; opacity: 0.4; } .hide{ display: none; } .models{ position: fixed; top: 50%; left: 50%; margin-left: -100px; margin-top: -100px; height: 200px; width: 200px; background-color: wheat; } </style> </head> <body> <div class="back"> <input class="c" type="button" value="click"> </div> <div class="shade hide handles"></div> <div class="models hide handles"> <input class="c" type="button" value="cancel"> </div> <script> var eles=document.getElementsByClassName("c"); var handles=document.getElementsByClassName("handles"); for(var i=0;i<eles.length;i++){ eles[i].οnclick=function(){ if(this.value=="click"){ for(var j=0;j<handles.length;j++){ handles[j].classList.remove("hide"); } } else { for(var j=0;j<handles.length;j++){ handles[j].classList.add("hide"); } } } } </script> </body> </html>
ãã3.æ¬æµ®ä¸æèå
<!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</title> <style> .container{ width: 300px; } .title{ background-color: gray; line-height: 44px; text-align: center; } .list{ display: none; } .list div{ line-height: 40px; } .item1{ background-color: #396bb3; } .item2{ background-color: #ffc392; } .item3{ background-color: #ff487f; } </style> </head> <body> <div class="container"> <div class="title">text</div> <div class="list"> <div class="item1">111</div> <div class="item2">222</div> <div class="item3">333</div> </div> </div> <script> var ele=document.getElementsByClassName("title")[0]; var ele_list=document.getElementsByClassName("list")[0]; var ele_box=document.getElementsByClassName("container")[0]; ele.οnmοuseοver=function () { ele_list.style.display="block"; }; ele_box.οnmοuseleave=function () { ele_list.style.display="none" } </script> </body> </html>
ãã4.å¾ä¹¦ç®¡çç³»ç»
<!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</title> <style> *{ margin: 0; padding: 0; } .navbar{ float: left; width: 100%; height: 50px; background-color: #272425; } .left_menu{ float: left; width: 20%; margin-left: -1px; height: 500px; border-right: 1px solid; } .right_content{ position: relative; top: 0; left: 0; float: left; width: 77%; height: 500px; padding-left: 40px; margin-right: -1px; } .operation{ margin-top: 20px; color: white; width: 100%; height: 30px; text-align: center; line-height: 30px; background-color: #396bb3; } .operation_list{ list-style: none; } .operation_list li{ margin: 10px; font-size: 14px; } .operation_list li a{ color: #396bb3; text-decoration: none; } .book_info{ width: 100%; font-size: 14px; } td{ width: 50px; height: 40px; border-top: 1px solid #e1e1e1; } .search_box{ width: 100%; height: 100px; } #search_bar{ padding: 10px; position: absolute; right: 144px; top: 36px; width: 200px; border-radius: 7px; border: 1px solid #e1e1e1; } .search_btn{ color: white; border-radius: 5px; padding: 9px; background-color: #396bb3; position: absolute; right: 93px; top: 34px; } .hide{ display: none; } .shade{ position: fixed; top: 0; bottom: 0; left: 0; right: 0; background-color: black; opacity: 0.4; } .model,.model2{ width: 500px; height: 400px; background-color:white; position: fixed; top: 50%; left:50%; margin-top: -200px; margin-left: -250px; } .btn{ width: 50px; height: 30px; border-radius: 5px; color: white; } .btn1{ background-color: #ff1732; } .btn2{ background-color: #396bb3; } .btn3{ background-color: #4cff82; } .btn4{ background-color: #ffdd3f; } .input_field,.input_field2{ height: 30px; border-radius: 5px; margin: 10px; } .model,.model2{ padding-left: 150px; } #put,#update{ margin-left: 100px; } #cancle,#quit{ margin-left: 50px; } .head{ width: 80%; height: 100%; margin: 0 auto; } .title{ float: left; color: white; font-size: 28px; line-height: 100%; margin-top: 8px; } .index_link{ float: left; color: #e1e1e1; font-size: 15px; margin-top: 15px; margin-left: 80px; text-decoration: none; } .copyright{ line-height: 30px; text-align: center; font-size: 14px; } </style> </head> <body> <div class="outer"> <div class="navbar"> <div class="head"> <div class="title">å¾ä¹¦ç®¡çç³»ç»</div> <div ><a href="" class="index_link">é¦é¡µ</a></div> </div> </div> <div class="left_menu"> <div class="operation">æä½</div> <ul class="operation_list"> <!--<li><a href="" >>>>æ·»å 书ç±</a></li>--> <li><a href="" >>>>è稿箱</a></li> <li><a href="" >>>>设置é»è®¤ç¼è¾å¨</a></li> <li><a href="" >>>>å¤ä»½ä¹¦ç±</a></li> </ul> </div> <div class="right_content"> <div class="search_box"> <form action=""> <input type="text" placeholder="Title" id="search_bar"> </form> <button class="search_btn">æ¥æ¾</button> </div> <button class="btn2 btn">æ·»å </button> <table class="book_info"> <tr> <td>å¾ä¹¦ç¼å·</td> <td>书å</td> <td>ä½è </td> <td>ä»·æ ¼</td> <td>åç±»</td> <td>䏿¶æ¶é´</td> <td>æä½</td> </tr> <tr> <td>1</td> <td>åå¾å¥èº«</td> <td>ä¿ç½·å¨å¾·(ç¾)</td> <td>79ï¿¥</td> <td>å¥èº«</td> <td>2013å¹´10æ</td> <td> <button class="btn4 btn">ç¼è¾</button> <button class="btn1 btn">å é¤</button> </td> </tr> <tr> <td>2</td> <td>ä¸ååäºå¹´</td> <td>é»ä»å®</td> <td>18ï¿¥</td> <td>åå²</td> <td>1990å¹´1æ1æ¥</td> <td> <button class="btn4 btn">ç¼è¾</button> <button class="btn1 btn">å é¤</button> </td> </tr> </table> </div> <div class="shade hide"></div> <div class="model hide"> <div>å¾ä¹¦ç¼å·ï¼<input type="text" class="input_field" value=""></div> <div> 书åï¼<input type="text" class="input_field" value=""></div> <div> ä½è ï¼<input type="text" class="input_field" value=""></div> <div> ä»·æ ¼ï¼<input type="text" class="input_field" value=""></div> <div> åç±»ï¼<input type="text" class="input_field" value=""></div> <div>䏿¶æ¶é´ï¼<input type="text" class="input_field" value=""></div> <button class="btn3 btn" id="put">æäº¤</button> <button class="btn1 btn" id="cancle">åæ¶</button> </div> <div class="model2 hide"> <div>å¾ä¹¦ç¼å·ï¼<input type="text" class="input_field2" value=""></div> <div> 书åï¼<input type="text" class="input_field2" value=""></div> <div> ä½è ï¼<input type="text" class="input_field2" value=""></div> <div> ä»·æ ¼ï¼<input type="text" class="input_field2" value=""></div> <div> åç±»ï¼<input type="text" class="input_field2" value=""></div> <div>䏿¶æ¶é´ï¼<input type="text" class="input_field2" value=""></div> <button class="btn3 btn" id="update">æ´æ°</button> <button class="btn1 btn" id="quit">éåº</button> </div> <div class="copyright"> <p>©All rights reserved</p> <p><b>Powered by</b> Amos</p> </div> </div> <script> //æ¿å°ææçbuttonæ ç¾ var eles_btn=document.getElementsByTagName("button"); //å é¤è¡¨æ ¼ä¸è¡ç彿° function cancel() { var ele_grand=this.parentElement.parentElement.parentElement; var ele_father=this.parentElement.parentElement; ele_grand.removeChild(ele_father); } //ç¼è¾å½æ° function compile() { var ele_shade=this.parentElement.parentElement.parentElement.parentElement.nextElementSibling; var ele_model2=ele_shade.nextElementSibling.nextElementSibling; ele_shade.classList.remove("hide"); ele_model2.classList.remove("hide"); var eles_info=this.parentElement.parentElement.children; var eles_value=document.getElementsByClassName("input_field2"); edit_obj=this.parentElement.parentElement; for (var i=0;i<eles_info.length-1;i++){ eles_value[i].value=eles_info[i].innerText; } } //å¾ªç¯æ¯ä¸ªæé®ï¼å¯¹åºæé®è¿è¡æä½ for (var i=0;i<eles_btn.length;i++){ //æé®è¢«ç¹å»çæ¶å eles_btn[i].οnclick=function () { //å¦æè¢«ç¹å»çæ¯æ·»å æé®ï¼å¼¹åºå¯¹è¯æ¡ if (this.innerText=="æ·»å "){ var eles_val=document.getElementsByClassName("input_field"); for (var i in eles_val){ eles_val[i].value=''; } var ele_shade=this.parentElement.nextElementSibling; var ele_model=ele_shade.nextElementSibling; ele_shade.classList.remove("hide"); ele_model.classList.remove("hide"); } //å¦æè¢«ç¹å»çæ¯æäº¤æé®ï¼ // 1.æ¿å°ç¨æ·è¾å ¥çå¼ // 2.æ·»å ä¸è¡è¡¨æ ¼ // 3.æç¨æ·è¾å ¥ç弿·»å å°æ¬è¡ // 4.æ·»å å é¤æé® // 5.å ³éå¯¹è¯æ¡ else if(this.innerText=="æäº¤"){ var eles_val=document.getElementsByClassName("input_field"); var eles_book_info=document.getElementsByClassName("book_info"); var ele_tr=document.createElement("tr"); eles_book_info[0].appendChild(ele_tr); for (i=0;i<eles_val.length;i++){ var ele_td=document.createElement("td"); ele_td.innerText=eles_val[i].value; ele_tr.appendChild(ele_td); } //å建å é¤,ç¼è¾æé® var ele_td2=document.createElement("td"); ele_tr.appendChild(ele_td2); var ele_cancel_btn = document.createElement('button'); ele_cancel_btn.innerText="å é¤"; ele_cancel_btn.classList.add("btn1"); ele_cancel_btn.classList.add("btn"); ele_cancel_btn.οnclick=cancel; var ele_edit_btn=document.createElement("button"); ele_edit_btn.innerText="ç¼è¾"; ele_edit_btn.οnclick=compile; ele_edit_btn.classList.add("btn4"); ele_edit_btn.classList.add("btn"); ele_td2.appendChild(ele_edit_btn); ele_td2.appendChild(ele_cancel_btn); //éèå¯¹è¯æ¡ var ele_model=this.parentElement; var ele_shade=ele_model.previousElementSibling; ele_shade.classList.add("hide"); ele_model.classList.add("hide"); } else if(this.innerText=="åæ¶"){ //éèå¯¹è¯æ¡ var ele_model=this.parentElement; var ele_shade=ele_model.previousElementSibling; ele_shade.classList.add("hide"); ele_model.classList.add("hide"); } else if(this.innerText=="å é¤"){ var ele_grand=this.parentElement.parentElement.parentElement; var ele_father=this.parentElement.parentElement; ele_grand.removeChild(ele_father); } else if(this.innerText=="ç¼è¾"){ //æè¡¨æ ¼ä¸çæ°æ®æ¾ç¤ºå°å¯¹è¯æ¡ä¸ var eles_info=this.parentElement.parentElement.children; var eles_value=document.getElementsByClassName("input_field2"); var ele_table=this.parentElement.parentElement.parentElement.parentElement; edit_obj=this.parentElement.parentElement; for (var i=0;i<eles_info.length-1;i++){ eles_value[i].value=eles_info[i].innerText; } //æ¾ç¤ºå¯¹è¯æ¡ var ele_shade=ele_table.parentElement.nextElementSibling; var ele_model2=ele_shade.nextElementSibling.nextElementSibling; ele_shade.classList.remove("hide"); ele_model2.classList.remove("hide"); } else if(this.innerText=="æ´æ°"){ // 1.æ¿å°ç¨æ·è¾å ¥çå¼ï¼ // 2.循ç¯å建tdæ ç¾ï¼å¹¶èµå¼ // 3.å建træ ç¾ï¼æ·»å tdæ ç¾ï¼ // 4.æ¾å°ç®æ æ ç¾æ¿æ¢ // 5.éèå¯¹è¯æ¡ var eles_value=document.getElementsByClassName("input_field2"); var new_tr=document.createElement("tr"); for (var i=0;i<eles_value.length;i++){ var new_td=document.createElement("td"); new_td.innerText=eles_value[i].value; new_tr.appendChild(new_td); } //æ¿å°æ°træ ç¾ä¸çæ¯ä¸ä¸ªtdæ ç¾ //ç¶åç¨æ°tdç弿¿æ¢æ§tdçå¼ var new_tr_child=new_tr.children; var old_tr_child=edit_obj.children; for (var i=0;i<new_tr_child.length;i++){ old_tr_child[i].innerText=new_tr_child[i].innerText; } //éèå¯¹è¯æ¡ var ele_model2=this.parentElement; var ele_shade=ele_model2.previousElementSibling.previousElementSibling; ele_shade.classList.add("hide"); ele_model2.classList.add("hide"); } else if(this.innerText=="éåº"){ //éèå¯¹è¯æ¡ var ele_model2=this.parentElement; var ele_shade=ele_model2.previousElementSibling.previousElementSibling; ele_shade.classList.add("hide"); ele_model2.classList.add("hide"); } }; } </script> </body> </html>
ä¸ãJSæ©å±
ãã1.JSçä½ç¨å
ããä½ç¨åæ¯JavaScriptæéè¦çæ¦å¿µä¹ä¸ï¼å¨JavaScriptä¸ï¼åéçä½ç¨åæå ¨å±ä½ç¨ååå±é¨ä½ç¨å两ç§ã
ãã1.1ï¼å ¨å±ä½ç¨åï¼global scopeï¼
ããå¨ä»£ç ä¸ä»»ä½å°æ¹é½è½è®¿é®å°çå¯¹è±¡æ¥æå ¨å±ä½ç¨åï¼ä¸è¬æ¥è¯´ä»¥ä¸å ç§æ 嵿¥æå ¨å±ä½ç¨åï¼
ããï¼1ï¼æå¤å±å½æ°å卿å¤å±å½æ°å¤é¢å®ä¹çå鿥æå ¨å±ä½ç¨å
var name="amos"; function foo(){ var age=23; function inner(){ console.log(age); } inner(); } console.log(name); // amos //console.log(age); // Uncaught ReferenceError: age is not defined foo(); // 23 inner(); // Uncaught ReferenceError: inner is not defined
ããï¼2ï¼æææªå®ä¹ç´æ¥å¤å¶çåéèªå¨å£°æä¸ºæ¥æå ¨å±ä½ç¨åï¼ä¾å¦ï¼
var name="amos"; function foo(){ age=23; var sex="male" } foo(); console.log(age); // 23 console.log(sex); // sex is not defined
ããåéageæ¥æå ¨å±ä½ç¨åï¼èsexå¨å½æ°å¤é¨æ æ³è®¿é®å°ã
ããï¼3ï¼ææwindow对象ç屿§æ¥æå ¨å±ä½ç¨å
ããä¸è¬æ åµä¸ï¼window对象çå ç½®å±æ§é½æ¥æå ¨å±ä½ç¨åï¼ä¾å¦window.alert()ãwindow.locationãwindow.topççã
ãã1.2ï¼å±é¨ä½ç¨åï¼Local Scopeï¼
ããåå ¨å±ä½ç¨åç¸åï¼å±é¨ä½ç¨åä¸è¬åªå¨åºå®ç代ç çæ®µå å¯è®¿é®å°ï¼æå¸¸è§çä¾å¦å½æ°å é¨ï¼ææå¨ä¸äºå°æ¹ä¹ä¼çå°æäººæè¿ç§ä½ç¨åç§°ä¸ºå½æ°ä½ç¨åã
ããjsä¸if/for没æèªå·±çä½ç¨åã
ãã2.ä½ç¨åé¾ï¼Scope chainï¼
ããå¨JavaScriptä¸ï¼å½æ°ä¹æ¯å¯¹è±¡ï¼å®é ä¸ï¼JavaScriptéä¸å齿¯å¯¹è±¡ã彿°å¯¹è±¡åå ¶å®å¯¹è±¡ä¸æ ·ï¼æ¥æå¯ä»¥éè¿ä»£ç 访é®ç屿§åä¸ç³»åä» ä¾JavaScriptå¼æè®¿é®çå é¨å±æ§ãå ¶ä¸ä¸ä¸ªå é¨å±æ§æ¯[[Scope]]ï¼ç±ECMA-262æ å第ä¸çå®ä¹ï¼è¯¥å é¨å±æ§å å«äºå½æ°è¢«å建çä½ç¨åä¸å¯¹è±¡çéåï¼è¿ä¸ªéåè¢«ç§°ä¸ºå½æ°çä½ç¨åé¾ï¼å®å³å®äºåªäºæ°æ®è½è¢«å½æ°è®¿é®ã
ãã2.1ï¼ç¤ºä¾æ¼ç¤º
//-----**********************ä¾1********************************* var s=12; function f(){ console.log(s); var s=12; // if s=12 console.log(s) } f(); //-----**********************ä¾2********************************* var s=10; function foo(){ console.log(s); var s=5; console.log(s); function s(){console.log("ok")}// 彿°çå®äºæå£°ææ¯å¨è¯æ³åææ¶å®æç,æ§è¡æ¶å·²ä¸åæä»»ä½æä½ console.log(s); } foo(); //-----***********************ä¾3******************************** function bar(age) { console.log(age); var age = 99; var sex= 'male'; console.log(age); function age() { alert(123) }; console.log(age); return 100; } result=bar(5); //-----********************************************************
ãã2.2ï¼ç»æåæ
ããæç¸ä¿¡å¤§å®¶ä¸å®ä¼ææ³ä¸å°çç»æï¼æ¥ä¸æ¥æä»¬å°±ä»¥æå¤æçä¾3æ¥åææ´ä¸ªè¿ç¨ã
ããå½ä¸ä¸ªå½æ°å建åï¼å®çä½ç¨åé¾ä¼è¢«å建æ¤å½æ°çä½ç¨åä¸å¯è®¿é®çæ°æ®å¯¹è±¡å¡«å ãå¨å½æ°barå建æ¶ï¼å®çä½ç¨åé¾ä¸ä¼å¡«å ¥ä¸ä¸ªå ¨å±å¯¹è±¡ï¼è¯¥å ¨å±å¯¹è±¡å å«äºææå ¨å±åéï¼å¦ä¸å¾æç¤ºï¼
ãã
ããè§£æå°å½æ°è°ç¨æ¶ï¼å³bar(5)ï¼ä¼çæä¸ä¸ªactive objectç对象ï¼è¯¥å¯¹è±¡å å«äºå½æ°çææå±é¨åéãå½ååæ°ãåæ°éå以åthisï¼ç¶åæ¤å¯¹è±¡ä¼è¢«æ¨å ¥ä½ç¨åé¾çå端ï¼å½è¿è¡æä¸ä¸æè¢«éæ¯ï¼æ´»å¨å¯¹è±¡ä¹éä¹éæ¯ãæ°çä½ç¨åé¾å¦ä¸å¾æç¤ºï¼
ãã
ããè¿ç¨è§£æï¼
function bar(age) { console.log(age); var age = 99; var sex="male"; console.log(age); function age(){ alert(123); } ; console.log(age); return 100; } result=bar(5); ä¸ è¯æ³åæè¿ç¨(æ¶ååæ°ï¼å±é¨åé声æï¼å½æ°å£°æè¡¨è¾¾å¼)ï¼ 1-1 ãåæåæ°ï¼æä¸ä¸ªåæ°ï¼å½¢æä¸ä¸ª AO.age=undefine; 1-2 ãæ¥æ¶åæ° AO.age=5; 1-3 ãåæåé声æï¼æä¸ä¸ª var age, åç° AO ä¸é¢æä¸ä¸ª AO.age ï¼åä¸åä»»ä½å¤ç 1-4 ãåæåé声æï¼æä¸ä¸ª var sexï¼å½¢æä¸ä¸ª AO.sex=undefine; 1-5 ãåæå½æ°å£°æï¼æä¸ä¸ª function age(){} 声æï¼ åæåæç age è¦çæ AO.age=function(){}; äº æ§è¡è¿ç¨ï¼ 2-1 ãæ§è¡ç¬¬ä¸ä¸ª console.log(age) æ¶ï¼å½åç AO.age æ¯ä¸ä¸ªå½æ°ï¼æä»¥è¾åºçä¸ä¸ªå½æ° 2-2 ãè¿å¥ var age=99; æ¯å¯¹ä¸ AO.age ç屿§èµå¼ï¼ AO.age=99 ï¼æä»¥å¨ç¬¬äºä¸ªè¾åºçageæ¯ 99; 2-3 ãåç第ä¸ä¸ªè¾åºçæ¯ 99, å 为ä¸é´æ²¡ææ¹å age å¼çè¯å¥äºã 注æï¼æ§è¡é¶æ®µï¼ function age(){ alert(123) } ; ä¸è¿è¡ä»»ä½æä½ï¼å°æ§è¡è¯å¥å¤å¶ç»ageè¿é¨æä½æ¯å¨è¯æ³åææ¶ï¼å³è¿è¡å宿çã