javaScript的常见类型和事件 数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 var v1 = [11 ,22 ,33 ,44 ];var v1 = array ([11 ,22 ,33 ,44 ]);v1[1 ]; v1[0 ] = "txt" ; v1.push ("ha" ); v1.unshift ("oo" ); v1.splice (1 ,0 ,"asd" ); v1.pop (); v1.shift (); v1.splice (1 ,1 ); for (var idx in v1){ v1[idx]; } for (var i=0 ;i<v1.length ;++i){ v1[i]; }
练习:动态数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html> <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <ul id ="city" > </ul > <script type ="text/javascript" > var citys = ["北京" ,"上海" ,"深圳" ]; for (var idx in citys){ var text = citys[idx]; var tag = document .createElement ("li" ); tag.innerText = text; var ulCity = document .getElementById ("city" ); ulCity.appendChild (tag); } </script > </body > </html >
对象(字典) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 info = { "name" :"jack" , "age" :18 } info = { name :"jack" , age :18 } info.age info.name = "mary" ; info["age" ] info["name" ] = "mary" ; delete info["age" ];for (var key in info){ }
练习:动态表格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <table border ="1" > <thread > <tr > <th > ID</th > <th > 姓名</th > <th > 年龄</th > </tr > </thread > <tbody id ="body" > </tbody > </table > <script > var msg = [ {id : 1 , name : "jack" , age : 19 }, {id : 2 , name : "jack" , age : 19 }, {id : 3 , name : "jack" , age : 19 }, {id : 4 , name : "jack" , age : 19 }, {id : 5 , name : "jack" , age : 19 } ]; for (var idx in msg) { var info = msg[idx]; var tr = document .createElement ("tr" ); for (var key in info) { var td = document .createElement ("td" ); var text = info[key]; td.innerText = text; tr.appendChild (td); } var body = document .getElementById ("body" ); body.appendChild (tr); } </script > </body > </html >
条件语句 1 2 3 4 5 6 7 8 9 if (条件){}else {}if (条件){}else if (){}else {}
函数 1 2 3 4 5 6 function func ( ){ ... } func ()
2.DOM
DOM就是一个模块,可以对HTML页面中的标签进行操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 var tag = document .getElementById ("xx" );tag.innerText tage.innerText = "sada" ; var tag = document .createElement ("div" );tag.innerText = "asdsad" ;
1 2 3 4 5 6 7 8 9 10 11 <ul> </ul> <script > var tag = document .getElementById ("city" ); var newTag = document .createElement ("li" ); tag.appendChild (newTag); </script >
DOM结合事件的绑定
场景描述:页面上有一个按钮,一点击就增加一条数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <input type ="button" value ="点击添加" onclick ="addMsg()" > <ul id ="msg" > </ul > <script type ="text/javascript" > function addMsg ( ) { var ul = document .getElementById ("msg" ); var li = document .createElement ("li" ); li.innerText = "hello" ; ul.appendChild (li); } </script > </body > </html >
jQuery
jQuery是一个JavaScript第三方模块
基础jQuery,可以自己开发一个功能
现成的工具依赖jQuery 例如:BootStrap动态效果
1 2 3 4 5 <script src="static/jquery...(路径)" ></script> <script > </script >
寻找标签(直接寻找)
ID选择器
样式选择器
标签选择器
层级选择器
1 2 3 4 5 <div class ="c1" > <div class ="c2" > <a > </a > </div > </vid >
多选择器
1 2 3 4 5 6 7 8 9 10 <div class ="c1" > <div class ="c2" > <a > </a > </div > </vid > <div class ="c4" > <div class ="c5" > <a > </a > </div > </vid >
逗号表示都选
属性选择器
1 2 3 <input type ='text' name ='n1' > <input type ='text' name ='n2' > <input type ='text' name ='n3' >
间接寻找
找到上下的兄弟
1 2 3 4 5 <div > <div > 北京</div > <div id ='c1' > 上海</div > <div > 深圳</div > </div >
1 2 3 4 5 6 7 $("#c1" ).prev () $("#c1" ).next () $("#c1" ).next ().next () $("#c1" ).siblings ()
找父子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <div > <div > <div > 北京</div > <div id ='c1' > 上海 <div > xx区</div > <div class ='p10' > xx区</div > <div > xx区</div > <div > xx区</div > </div > <div > 深圳</div > </div > </div > <div > <div > <div > 北京</div > <div id ='c2' > 上海</div > <div > 深圳</div > </div > </div >
1 2 3 4 5 6 7 8 $("#c1" ).parent () $("#c1" ).parent ().parent $("#c1" ).children () $("#c1" ).children (".p" ) $("#c1" ).find ("div" ) $("#c1" ).find (".p" )
练习:菜单的展示与隐藏 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > <style > .border { width : 300px ; height : 800px ; border : 1px solid red; } .header { background-color : yellow; cursor : pointer; } .content a { display : block; } .hide { display : none; } </style > </head > <body > <div class ="border" > <div class ="item" > <div class ="header" onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > <div class ="item" > <div class ="header " onclick ="clickMe(this)" > 上海</div > <div class ="content hide" > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > <a > xx区</a > </div > </div > </div > <script src ="static/js/jquery-3.7.1.min.js" > </script > <script type ="text/javascript" > function clickMe (self ) { var hasHide = $(self).next ().hasClass ("hide" ); if (hasHide){ $(self).next ().removeClass ("hide" ); }else { $(self).next ().addClass ("hide" ); } } </script > </body > </html >
改进plus版:要求只有一个展开,其余全合上
1 2 3 4 5 6 7 8 9 10 <script src ="static/js/jquery-3.7.1.min.js" > </script > <script type ="text/javascript" > function clickMe (self ) { $(self).next ().removeClass ("hide" ); $(self).parent ().siblings ().find (".content" ).addClass ("hide" ); } </script >
操作样式 添加样式 addClass
移除样式removeClass
判断样式是否拥有hasClass
值得操作
1 2 $("#c1" ).text () $("#c1" ).text ("哈哈" )
1 <input type ='text' id ='c2' />
1 2 $("#c2" ).val () $("#c2" ).val ("askdalksdj" )
动态创建数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <input type ="text" placeholder ="请输入用户名" id ="username" > <input type ="text" placeholder ="请输入密码" id ="password" > <input type ="button" value ="注册" onclick ="getInfo()" > <ul id ="userdata" > </ul > <script src ="static/js/jquery-3.7.1.min.js" > </script > <script type ="text/javascript" > function getInfo ( ) { var username = $("#username" ).val (); var password = $("#password" ).val (); var newLi = $("<li>" ).text (username); $("#userdata" ).append (newLi) $("#username" ).val ("" ); } </script > </body > </html >
事件(以jQuery绑定事件) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <UL > <li > 百度</li > <li > 谷歌</li > <li > 搜狗</li > </UL > <script > $("li" ).click ((function ){ }) </script >
如果让他更快加载?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <UL > <li > 百度</li > <li > 谷歌</li > <li > 搜狗</li > </UL > <script > $(function ( ){ }) $("li" ).click ((function ){ }) </script >
练习:删除表格行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <table border ="1" > <thread > <tr > <th > ID</th > <th > 姓名</th > <th > 年龄</th > </tr > </thread > <tbody > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > <tr > <td > 1</td > <td > 越</td > <td > 24</td > <td > <input type ="button" value ="删除" class ="delete" > </td > </tr > </tbody > </table > <script src ="static/js/jquery-3.7.1.min.js" > </script > <script type ="text/javascript" > $(function ( ){ $(".delete" ).click (function ( ){ $(this ).parent ().parent ().remove (); }) }) </script > </body > </html >