首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,307 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,905 阅读
3
gradle-5.4.1-all.zip下载
8,831 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,816 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,866 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
623
篇文章
累计收到
612
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
36
篇与
的结果
2020-03-15
JavaScript学习笔记
1..什么是JavaScript? 客户端的解释性脚本语言.与Java之间不存在任何关系;2.JavaScript的语法结构,声明与引入 <script type="text/javascript">...</script> <script type="text/javascript" src="JS文件路径及名称"></script>内部JS直接在标签<script></script>中填写,外部导入<script src="外部js路径"></script> 第一步:创建JS文件并且写入相关的代码; 第二步:在网页文件内调用相关的JS文件; 说明: A.JS严格区分大小写; B.每行JS代码必须以分号结尾;(现在虽然可以不写,但是怕以后过度到全部用,以防万一) C.JavaScript文件的扩展名为.js <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js的声明和引入</title> <script> alert("这是我的第一个js"); /*js的声明方式1 在head标签进行js代码域的声明 只会作用于当前页面*/ </script> <script src ="59-my.js" type="text/javascript"> /*src属性引入外部js代码 代码可重用,避免代码冗余*/ console.log(3,5)); </script> </head> <body> </body> </html> 外部59-my.js alert("这是外部声明的js"); function add(x,y){ return x+y; }3.JS中的变量:JavaScript 变量是存储数据值的容器。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js中的变量</title> <script type="text/javascript"> var a = 1; var b = "c"; var c; alert(typeof(a)); alert(typeof(new Date())); if(c){ alert(c); } function add(x,y){ alert(x+y); } for(var i = 1; i < 9;i++){ for(var j = 1; j <= i;j++){ document.write("i*j"+"="+i*j+" "); } document.write("<br />"); } </script> </head> <body> <input type="button" name="" id="" value="" onclick="add()"/> <label for=""> 点击这里调用add函数 </label> </body> </html>4.JS中的数据类型 字符型(string),数值型(number),布尔型(boolean),未定义(undefined),null(空对象),function(自定义函数), 对象(object),属性与方法的集合体; { propert:value, ...., method:function([parameter,...]){ ... ... } } <!DOCTYPE html> <!--p31 20分钟--> <html> <head> <meta charset="UTF-8"> <title>js中自定义对象</title> <!--应该有哪些属性 应用: Ajax中会使用 使用: 1.创建自定义对象 var 对象名 = new Object(); 对象名.属性名1 = 属性值1;... 2.一般用来存储数据,不会再自定义对象中存储对象。 3.js中的对象属性是可以自定义的可扩充的,不是依赖于类的声明的,类只是对象公共部分的一种声明,是为了减少代码冗余 --> <script type="text/javascript"> //1.创建自定义对象 var obj = new Object(); obj.name = "jason"; obj.age = 18; obj.test = function(){ alert(obj.name); } obj.test(); </script> </head> <body> </body> </html> <!DOCTYPE html> <html> <head> <!-- js中类的"继承" : prototype关键字 通过prototype关键字实现了不同对象之间的数据共享 作用1:实现某个类的所有子类对象的方法区对象的共享,节省内存; 作用2: --> <meta charset="UTF-8"> <title>js中类和对象</title> <script type="text/javascript"> var date = new Date(); console.log(date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()) //创建类Person 和 User function Person(name,age){ this.name = name; this.age = age; this.fav = "唱歌"; } function User(uname,pwd){ this.uname = name; this.pwd = pwd; } //使用prototype Person.prototype.test = function(){ alert("prototype关键字实现数据共享!!!"); } Person.prototype.user = new User(); User.prototype.testU = function(){ alert("User中的testU"); } //使用类 var p1 = new Person("小李","18"); alert(p1.name); alert(p1.test()); p1.user.testU(); </script> </head> <body> </body> </html>5.window对象<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js中window对象的学习</title> <!-- 1.框体方法 1.alert 没有返回值 2.confirm 警告框 确认返回true 取消返回false 3.prompt 输入框 返回输入的值 否则 返回null 2.定时和间隔执行方法 setTimeout: 指定的时间后执行指定的函数 参数1:函数对象 参数2:时间,单位毫秒 setInterval : 没间隔指定的事件执行指定的函数 参数1:函数对象 参数2:时间,单位毫秒 clearTimeout 停止当前的定时方法 参数,定时器的id clearInterval 用来停止指定的时间间隔 参数,间隔器的id --> <script type="text/javascript"> //弹窗 警告框 输入框 function testAlert(){ window.alert("测试alert"); } function testConfirm(){ var a = window.confirm("确定要删除吗??"); console.log(a); } function testPrompt(){ var a = window.prompt("请输入昵称:"); console.log(a); } //声明全局变量id,为了停止定时执行 var id,ids; //测试定时执行 function testSetTimeout(){ id = window.setTimeout(function(){ alert("三秒后执行弹窗!!!"); },3000); } //间隔执行 function testSetInterval(){ ids = window.setInterval(function(){ alert("我是间隔执行!!!每三秒弹一次"); },2000); } //停止定时 function testClearTimeout(){ window.clearTimeout(id); } function testClearinterval(){ window.clearInterval(ids); } </script> </head> <body> <input type="button" name="" id="" value="测试警告框" onclick="testConfirm()"/><br /> <input type="button" name="" id="" value="测试输入框" onclick="testPrompt()"/><br /> <hr /> <input type="button" name="" id="" value="测试setTimeg定时执行" onclick="testSetTimeout()"/><br /> <input type="button" name="" id="" value="测试setInterval间隔执行" onclick="testSetInterval()"/><br /> <input type="button" name="" id="" value="测试clearTimeout--停止指定的定时器" onclick="testClearTimeout()"/><br /> <input type="button" name="" id="" value="测试clearInterval--停止间隔执行的定时器" onclick="testClearinterval()" /> </html> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js中window对象学习2</title> <!-- js的window对象学习 1.子窗口方法 window.open("子页面的相路径","打开方式","属性") 示例:window.open("59-js-测试用的son子页面.html","newwindow","height=400,width=600,top=0,left=0,toolbar=no,menubar=no,scrollbar =no,resizable=no,location=no,status=no"); 注意:关闭子页面的方法window.close() 只能关闭打开的子页面 2.子页面调用父页面的函数 window.opener.父页面的函数 js的window对象的常用属性 地址栏属性: location window.location.href = "新的资源路径(相对路径/URL)"; window.location.reload() 重新加载资源页面 历史记录属性:history window.history.forward() 页面资源前景,历史记录的前进 window.history.back() 页面资源后退,历史记录后退 window.history.go(index) 跳转到指定的历史记录资源 -3 -2 -1 负数 0 正数 后退到第几个 当前页面=刷新 1-2-3 当前页面的前第几个 屏幕属性:screen window.screen.width window.screen.height 两个结合获取屏幕分辨率 浏览器配置属性:navigator window.navigator.UserAgent 主题面板属性 --> <script type="text/javascript"> //1.子页面的方法 function testOpen(){ window.open("59-js-测试用的son子页面.html","newwindow","height=400,width=600,top=0,left=0,toolbar=no,menubar=no,scrollbar =no,resizable=no,location=no,status=no"); } //子页面调用父页面的函数 function testUseFather(){ alert("父页面的方法!!!不知为什么会调用失败!!!"); } //1.地址栏属性学习 --- location function testLocation(){ window.location.href = "https://www.baidu.com"; } function testLocation2(){ window.location.reload(); } //2.历史记录属性 function testHistory(){ window.history.forward(); } //3.屏幕属性学习 function testScreen(){ var x = window.screen.width; var y = window.screen.height; alert("x:"+x +" y:"+y); } //浏览器配置属性 function testNavigtor(){ alert(window.navigator.userAgent); } </script> </head> <body> <input type="button" name="" id="" value="测试open,打开子页面" onclick="testOpen()"/> <br /> <hr /> <input type="button" name="" id="" value="测试地址栏属性--location--跳转资源" onclick="testLocation()"/><br /> <input type="button" name="" id="" value="测试地址栏属性--location--重新加载资源" onclick="testLocation2()"/> <hr /> <br /> <input type="button" name="" id="" value="测试历史记录--history--前进(bakc同理,go下标)" onclick="testHistory();"/> <hr /> <br /> <input type="button" name="" id="" value="测试屏幕属性--screen" onclick="testScreen();"/> <hr /> <br /> <input type="button" name="" id="" value="测试浏览器配置属性--navigator" onclick="testNavigtor()"/> </body> </html> 6.DOM对象<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>document对象学习</title> <!-- 1.document 对象的概念 浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存的HTML文档的所有信息 2.使用document 获取HTML元素对象 直接获取方式 通过id 通过name属性值 通过标签名 通过class属性值 操作HTML对象的属性 操作HTML元素对象的内容和样式 操作HTML的文档结构 document操作Form元素 document操作表格 document对象实现form表单的校验 --> <script type="text/javascript"> //document获取元素对象 //1.直接获取方式 function testGetElementById(){ var inp = document.getElementById("uname"); alert(inp); } function testGetElementsByName(){ alert(document.getElementsByName("uname1").length); } function testGetElementsByTagName(){ var inps = document.getElementsByTagName("input"); alert(inps.length); } function testGetElementsByClassName(){ var inp1 = document.getElementsByClassName("uname"); alert(inp1); } //2.间接获取方式 //父子关系 function testParentGetChilds(){ //获取父级元素对象 var parentEle = document.getElementById("showdiv"); //获取所有的子元素对象群组 var childs = parentEle.childNodes; alert(childs.length); //有换行所以会增加很多 } //子父关系 function testChildGetParent(){ alert(document.getElementById("inp").parentNode); } //兄弟关系 function testBrother(){ //注意有回车换行 var preEle = document.getElementById("inp").previousSibling; //弟获取兄 var nextEle = document.getElementById("inp").nextSibling; //兄获取弟 alert(preEle + ":::" + nextEle) } </script> <style type="text/css"> .common{} #showdiv{ border: solid 1px red; width: 400px; height: 500px; } </style> </head> <body> <h3>document 对象的概念和获取元素对象学习</h3> 直接获取: <hr /><br /> <input type="text" name="uname" id="uname" value="测试获取HTML元素对象---getElementById('id值')" onclick="testGetElementById()" style="width: 400px;"/><br /> <input type="text" name="uname1" id="uname1" value="测试获取HTML元素对象---getElementByName('name值')" onclick="testGetElementsByName()" style="width: 400px;"/><br /> <input type="text" name="uname2" id="uname2" value="测试获取HTML元素对象---getElementsByTagName('标签名')" onclick="testGetElementsByTagName()" style="width: 400px;"/><br /> <input type="text" name="uname3" id="uname3" value="测试获取HTML元素对象---getElementsByClassName('标签名')" onclick="testGetElementsByClassName()" style="width: 400px;"/><br /> <br /> <input type="checkbox" name="" id="" value="复选框" class="common"/> <br /> 间接获取:<br /> <input type="button" name="" id="" value="获取所有子元素--父子关系" onclick="testParentGetChilds()"/><br /> <input type="button" name="" id="" value="获取父元素--子父关系" onclick="testChildGetParent()"/><br /> <input type="button" name="" id="" value="获取兄弟元素--兄弟关系" onclick="testBrother()"/><br /> <div id="showdiv"> <input type="" name="" id="" value="" /> <input type="" name="" id="inp" value="" /> <input type="" name="" id="" value="" /> <input type="" name="" id="" value="" /> <input type="" name="" id="" value="" /> <input type="" name="" id="" value="" /> </div> </body> </html>7.JS操作元素 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js操作HTML的元素属性</title> <!-- js 操作HTML元素属性学习 获取元素对象 操作元素属性 获取: ①元素对象.属性值 // 返回当前属性的属性值 ②元素对象.getAttribute("属性名") 修改 元素对象.属性名 = 属性值 元素对象.setAttribute("属性名","属性值") 注意: 尽量不要去修改id 和 name 属性值 使用固有方法获取value值是默认值,不能获取到实时的值 --> <script type="text/javascript"> //获取 修改 function testField(){ //获取元素对象 var inp = document.getElementById("uname"); alert(inp.value); //修改属性 inp.value = "修改后的属性"; inp.type = "button"; } //getArrtibute("属性名") 和 setAttribute("属性名","属性值") function testGetAndSet(){ alert(document.getElementById("uname").getAttribute("type")); document.getElementById("uname").setAttribute("abc","测试getAttribute()和setAttribute()"); alert(document.getElementById("uname").getAttribute("abc")); } </script> </head> <body> <h3> js操作HTML的元素属性 </h3> <input type="button" name="" id="" value="元素对象.属性名获取元素属性" onclick="testField()"/> <input type="button" name="" id="" value="getAttribute()和setAttribute()" onclick="testGetAndSet()"/> <hr /> 用户名:<input type="text" name="uname" id="uname" value="先存放的12" /> </body> </html> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js操作元素内容</title> <!-- 操作元素内容 获取元素对象 获取 对象元素.innerHTML ==>当前元素的所有内容,包括标签 对象元素.innerText ==>当前元素的文本内容,不包括标签 修改: 对象元素.innerHTML = "新的值"; ==>HTML标签会被解析且覆盖新的值 对象元素.innerHTML = 对象元素.innerHTML+"新的值"; ==>HTML标签会被解析且追加到末尾 对象名.innerText = "新的值"; ==>HTML标签不会被解析且覆盖新的值 对象元素.innerText = 对象元素。innerTEXT+"新的值"; ==>HTML标签不会被解析且追加新的值 --> <script type="text/javascript"> //获取元素内容 function getContext(){ //获取对象及其内容 alert(document.getElementById("div01").innerHTML); alert(document.getElementById("div01").innerText); } //修改元素内容 function updateContext1(){ var div = document.getElementById("div01"); div.innerHTML = div.innerHTML + "<br />测试文本3"; } function updateContext2(){ var div = document.getElementById("div01"); div.innerText = div.innerText + "<br />测试文本3"; } </script> <style type="text/css"> #div01{ width:400px; height: 500px; } </style> </head> <body> <h3>js操作元素内容学习</h3> <input type="button" name="" id="" value="获取元素内容--innerHTML" onclick="getContext()"/> <input type="button" name="" id="" value="修改元素内容--innerHTML" onclick ="updateContext2()" /> <hr /> <div id="div01"> 测试文本1, 测试文本2。 </div> </body> </html> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js操作元素的文档</title> <!-- js操作HTML文档结构 增加节点 删除节点 第一种方式: 使用innerHTML: div.innerHTML = div.innerHTML + "内容"; //增加节点 div.innerHTML = ""; //删除所有节点 父节点.removeChild(子节点对象); //删除指定的子节点 == 不适合table 第二种方式:见操作文档结构2 获取元素对象 var obj = document.createElement("标签名"); obj.属性名="新值"; 最后记得追加 ===》元素对象.appendChild(obj); 删除同上: 父节点.removeChild(子节点对象); --> <script type="text/javascript"> //innerHTML添加节点 function testAdd(){ var divEle = document.getElementById("showdiv"); divEle.innerHTML = divEle.innerHTML + "<div><input type='file' name='' value='选择文件'/><input type='button' name='' id='' value='删除' onclick='testDelete(this)' /></div>"; } //删除按钮 function testDelete(btn){ //获取父级div var showdiv = document.getElementById("showdiv"); //获取要删除的子div var parentDiv = btn.parentNode; //父div删除子div showdiv.removeChild(parentDiv); } </script> </head> <body> <h3>js操作元素的文档结构</h3> <input type="button" name="" id="" value="继续上传" onclick="testAdd()" /> <br /><hr /> <div id="showdiv"> <input type="file" name="" value="选择文件"/><input type='button' name='' id='' value='删除' onclick="testDelete(this);"/> </div> </body> </html> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js操作元素的文档结构2</title> <script type="text/javascript"> function testOpera(){ //获取元素对象 var showdiv = document.getElementById("showdiv"); //创建input元素对象 var inp = document.createElement("input"); inp.type = "file"; //创建input元素对象 var btn = document.createElement("input"); btn.type = "button"; btn.value = "删除"; //onclick也是属性 btn.onclick=function(){ showdiv.removeChild(inp); showdiv.removeChild(btn); showdiv.removeChild(br); } //创建换行符 var br = document.createElement("br"); //将创建的元素存放到div中 showdiv.appendChild(inp); showdiv.appendChild(btn); showdiv.appendChild(br); } </script> </head> <body> <h3>js操作文档的结构2</h3> <input type="button" name="" id="" value="继续上传" onclick="testOpera()" /> <br /><hr /> <div id="showdiv"> </div> </body> </html> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js操作元素的样式</title> <!-- js操作元素样式 获取元素对象 1.通过style属性 元素对象.style.样式名="样式值"; //添加或者修改样式 元素对象.style.样式名=""; //删除样式 注意:以上操作,操作的是HTML的style属性声明中的样式,而不是其他css代码中的样式 2.通过className 元素对象.className = "新的值"; 添加或者修改类选择器 元素对象.className = ""; 删除类样式 --> <script type="text/javascript"> //js操作样式--style 添加 修改 删除 元素样式 function testChangeCss(){ var showdiv = document.getElementById("showdiv"); //添加样式的两种方法 //showdiv.style = "background-color:green"; //这种写法或者下面的写法 showdiv.style.backgroundColor = "#FF0000"; //修改样式 showdiv.style.border = "solid 2px #00FF00"; //删除样式 showdiv.style.width= ""; } //js操作样式 -- className function testOperaCss(){ var div01 = document.getElementById("div01"); //获取 alert(div01.className); //添加 或者 修改 div01.className = "common2"; // //删除 // div01.className = ""; } </script> <style type="text/css"> #showdiv{ width:400px; height: 500px; } .common{ width:400px; height: 500px; border: 1px solid red; } .common2{ width:400px; height: 500px; border: 1px solid red; background-color: aqua; } </style> </head> <body> <h3>js操作元素的样式</h3> <input type="button" name="" id="" value="style增删改样式" onclick="testChangeCss()"/> <input type="button" name="" id="" value="通过class修改样式" onclick="testOperaCss()"/> <br /><hr /> <div id="showdiv"> </div> <div id="div01" class="common"> </div> </body> </html>8.JS操作表格<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>操作表格</title> <!-- js 操作表格 1.删除行 行对象.rowIndex //返回行对象的下标 表格对象.deleteRow(行对象.rowIndex ) --> <!--js代码区域--> <script type="text/javascript"> //删除行 function deleteTr(btn){ //获取表格对象 var table = document.getElementById("bookTable"); //获取要删除的行对象 var tr = btn.parentNode.parentNode; //删除 table.deleteRow(tr.rowIndex); } //修改表格 function updateRow(btn){ //获取父节点的父节点 ==>行对象 var tr = btn.parentNode.parentNode; //获取需要修改的单元格 var cell = tr.cells[4] if(!isNaN(Number(cell.innerHTML))){ //修改单元格 cell.innerHTML = "<input type='text' value='" +cell.innerHTML +"' onblur='updateRow2(this)'/>"; }; } //失去焦点修改值 function updateRow2(inpText){ //获取父节点的父节点 ==>行对象 var tr = inpText.parentNode.parentNode; //获取需要修改的单元格 var cell = tr.cells[4] //失去焦点将值赋给单元格 cell.innerHTML = inpText.value; } </script> <style type="text/css"> #bookTable tr{ height: 35px; } body{ text-align: center; } </style> </head> <body> <h3 align="center">js操作表格</h3> <input type="button" name="" id="" value="添加行" /> <input type="button" name="" id="" value="删除行" disabled="disabled"/> <input type="button" name="" id="" value="复制行" disabled="disabled"/> <br /><hr /> <table id = "bookTable" border="2px" cellspacing="1px" cellpadding="3px" align="center"> <tr align="center" style="font-weight: bold;"> <td><input type = "checkbox" name = "chk" id = "chk" onclick="" /></td> <td width = "200px;">书名</td> <td width = "100px;">作者</td> <td width = "100px;">价格</td> <td width = "100px;">数量</td> <td width = "200px;">操作</td> </tr> <tr> <td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td> <td>Thinking in Java</td> <td>jason</td> <td>99.45</td> <td id="cell">30</td> <td> <input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/> <input type="button" name="" id="" value="删除" onclick="deleteTr(this)"/> </td> </tr> <tr> <td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td> <td>Java Web 开发详解</td> <td>孙鑫</td> <td>1000</td> <td>1</td> <td> <input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/> <input type="button" name="" id="" value="删除" onclick="deleteTr(this)"s/> </td> </tr> <tr> <td><input type = "checkbox" name = "chkd" id = "chkd" onclick="" /></td> <td>JSP应用开发详解</td> <td>电子工业出版社</td> <td>34</td> <td>90</td> <td> <input type="button" name="" id="" value="修改数量" onclick="updateRow(this)"/> <input type="button" name="" id="" value="删除" onclick="deleteTr(this)"/> </td> </tr> </table> <h1 style="color:red">上面的功能 和 复选框暂时没写</h1> </body> </html>9.JS操作form表单<!DOCTYPE html> <!--p43 开头--> <html> <head> <meta charset="UTF-8"> <title>js操作form表单</title> <!-- js操作form表单 1.获取form表单对象 使用id 或者 表单的name属性 2.获取form下的所有表单元素对象集合 fm.elements 3.form 表单的常用方法 表单对象.submit(); //提交表单数据 4.form 的属性的操作 表单对象.action = "新的值"; //动态改变数据提交路径 表单对象.method = "新的值"; //动态的改变提交方式 5.表单元素的通用属性 只读模式 readonly 只读会提交 关闭模式 disable 禁用不提交 --> <script type="text/javascript"> function testForm(){ //获取form表单对象 var fm = document.getElementById("fm"); //使用form表单的name属性值来获取form表单对象==》form特殊,其他不行 var frm = document.frm; //===>获取的结果和上面完全一样 // alert(frm===fm); //获取form表元素对象集合 // alert(fm.elements.length); //form 表单的常用方法 // fm.submit(); //提交,很重要 fm.reset(); //重置 //form表单的属性操作 fm.action="https://www.baidu.com/s"; } </script> </head> <body> <h3>js操作form表单</h3> <input type="button" name="" id="" value="测试js操作form" onclick="testForm()"/> <br /><hr /> <form action="#" method="get" id="fm" name="frm"> <b>用户名</b>: <input type="texf" name="wd" id="uname" value="" /><br /><br /> 密码:<input type="password" name="pwd" id="pwd" value="" /><br /><br /> <input type="text" name="只读会提交" id="" value="只读" readonly="readonly" /><br /> <input type="text" name="关闭不提交" id="" value="禁用" disabled="disabled" /><br /> <input type="submit" name="" id="" value="登录"/> </form> </body> </html> 10.JS中的事件机制<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js的事件机制学习1</title> <!-- 解释:当一位满足一定的条件后,会触发某类事务的执行 作用:主要结合js的函数来使用 一个事件可以添加多个监听时间,已 ; 分开 内容: 1.单双机事件 单击:onclick 双击:ondblclick 2.鼠标事件 onmousemove 鼠标停在 onmouseover 鼠标移动 onmouseout 鼠标移出 3.键盘事件 onkeyup 键盘弹起 onkeydown 键盘按下 4.焦点事件 onblur onfocus 5.页面加载事件 onload 注意: js中添加事件的第一种方式:直接添加监听函数 js的事件只在当前HTML元素有效 --> <script type="text/javascript"> //单击事件 function testOnclick(){ alert("单击事件!!"); } //双击事件 function testOndblclick(){ alert("双击事件!!!"); } //鼠标事件 function testOnmouseover(){ alert("我是鼠标悬停事件!!!"); } //鼠标移动 function testOnmousemove(){ alert("我被移动了!!!"); } //移出区域 function testOnmouseout(){ alert("被移出了!!"); } //键盘事件 function testOnkeyup(){ alert("我是键盘弹起事件!!!"); } function testOnkeydown(){ alert("我是键盘下压事件!!!"); } //焦点事件 function testonfocus(){ document.getElementById("showDiv1").innerHTML= "<br/>获取焦点"; // alert("获取焦点事件"); } function testOnblur(){ alert("失去焦点事件!!!"); } //页面加载 function testOnload(){ alert("我是页面加载事件!!!"); } </script> <style> #showDiv1{ width: 200px; height: 200px; border: solid 2px; background: border-box; } </style> </head> <body onload="testOnload()"> <h2>js事件机制的学习1</h2> <input type="button" name="" id="" value="测试单击" onclick="testOnclick()"/> <input type="button" name="" id="" value="测试双击" ondblclick="testOndblclick()" /> testOnload(); <br /> <br /> <br /> <div id = "showDiv1" onmouseover="testOnmouseover();" onmousemove="testOnmousemove();" onmouseout="testOnmouseout()"></div> <br /><hr /> 键盘事件学习 键盘弹起事件:<input type="text" name="" id="" value="" onkeyup="testOnkeyup()"/><br /> 键盘下压事件: <input type="text" name="" id="" value="" onkeydown="testOnkeydown()"/> <hr /> 焦点事件学习: 获取焦点:<input type="text" name="" id="" value="" onfocus="testonfocus()"/> <br /> 失去焦点:<input type="text" name="" id="" value="" onblur="testOnblur()"/> </body> </html> <script type="text/javascript"> testOnload(); </script> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js事件机制学习2</title> <!-- 1.给合适的HTML标签加上合适的事件 1.onchange --- select下拉选 2.onload ---body 3.鼠标键盘 ==>比如登录注册时 2.给HTML添加多个事件时,注意事件的冲突 3.事件的阻断 当事件监听的函数将返回值给事件时:false阻断,true则继续 4.超链接调用js函数 <a href="javascript:函数()"></a> --> <script type="text/javascript"> //值改变事件 function testOnchange(btn){ // alert(document.getElementById(btn).value); alert("改变了!!!"); } //事件冲突 function testOnclick(){ alert("单击事件!!!"); } function testOndblclick(){ alert("双击事件!!!"); } //事件的阻断!!! function testBreak(){ alert("事件的阻断!!"); return false; } //超链接调用js函数 function testHref(){ alert("这是超链接调用js函数!!!"); } </script> </head> <body> 值改变事件:<input type="text" name="" id="inp1" value="" onchange="testOnchange(this);"/> <br /> <br /> <select name="" id="sel1" onchange="testOnchange(this);"> <option value="">北京</option> <option value="">上海</option> <option value="">赣州</option> <option value="">深圳</option> </select> <hr /> 事件的冲突:<br /> <input type="button" name="" id="" value="事件的冲突事件" onclick="testOnclick()" ondblclick="testOndblclick()"/> <br /> 事件的阻断: <a href="https://www.baidu.com/" target="_blank" onclick="return testBreak()" >点击打开百度</a> <br /> 超链接调用js函数 <a href="javascript:testHref()">超链接调用js函数!!!</a> </body> </html>11.JS中的正则表达式<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js中的正则表达式</title> <script type="text/javascript"> //$1反向引用 var str = "a1898989b2c3d4"; str = str.replace(/(d+)/g,'<span style="color:red">$1</span>') document.write("<br>"+str) str = str.replace(/(d+)/g,'<span style="color:red">1</span>') document.write("<br>"+str) var date = "12/25/2018" //用一条语句将其输出成"2018-12-25" date1 = date.replace(/(d{1,})/(d{1,})/(d{4})/,'$3-$1-$2') document.write("<br>"+date1) </script> </head> <body> </body> </html>
2020年03月15日
620 阅读
0 评论
2 点赞
2020-03-11
天气API接口
已废弃API地址:http://t.weather.sojson.com/api/weather/city/101210101使用说明:地址最后的“101210101”代表杭州想要测试自己城市,把最后的101210101换成自己的城市代码(city_code)即可[ { "id": 1, "pid": 0, "city_code": "101010100", "city_name": "北京", "post_code": "100000", "area_code": "010", "ctime": "2019-07-11 17:30:06" }, { "id": 2, "pid": 0, "city_code": "", "city_name": "安徽", "post_code": null, "area_code": null, "ctime": null } ]
2020年03月11日
765 阅读
0 评论
0 点赞
2020-03-10
一些信息查询入口
1.中国执行信息公开网访问网址:http://zxgk.court.gov.cn/?dt_dapp=1注释:输入姓名或shen/份证号就可以查到一个人的失信记录,借钱之前查看是否是老赖!2.全国标准信息公共服务平台访问网址:http://www.std.gov.cn注释:我们生活中各行各业的行业标准,包括行业标准、团体标准、国外标准,已废止的、现行的、即将实施的都能查到。3.征信中心(银行一般规定:一个月不要查询超过三次)访问网址:https://ipcrs.pbccrc.org.cn/注释:这个是用来查询自己的个人信用记录,违约、延迟还款和查询是否存在不良记录,信用不足会影响银行贷款等行为!4.中国裁判文书网访问网址:http://wenshu.court.gov.cn注释:输入你要查询的人物姓名,检索对方的名字,刑事案件,个人经济纠纷,债权债务信息一目了然!5.国家药品监督管理局访问网址:http://www.nmpa.gov.cn/WS04/CL2042/注释:输入检索项目搜索,凡是没有通过国家药监局备案的产品都是三无产品!6.商务部直销行业管理访问网址:http://zxgl.mofcom.gov.cn注释:可以查询所处单位是是传销还是直销!7.全国企业信用信息公示系统访问网址:http://www.gsxt.gov.cn/index.html注释:毕业学生找工作不知道公司靠不靠谱,可以上这里查询面试公司是不是正规公司。8.滚蛋吧!莆田系访问网址:https://putianxi.github.io/index.html注释:可以查询全国各地的莆田系医院!9.支付宝查个人婚姻状况查询方法:https://www.douban.com/group/topic/142322388/
2020年03月10日
873 阅读
0 评论
0 点赞
2020-03-04
java中Integer运算保留2位小数
1.整数型运算时,结果会自动去除小数点后面的部分,如果需要适当的保留几位小数,需要转为fload类型,分子或者分母或者都转如:计算5除以6,保留2位小数 BigDecimal b = new BigDecimal((float)5/6);四舍五入保留2位 Double result = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();如需保留3位 Double result = b.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();2.第二种方法DecimalFormat df = new DecimalFormat("0.00"); Double result = df.format((float)5/6);如需保留3位 DecimalFormat df = new DecimalFormat("0.000"); Double result = df.format((float)5/6);3.第三种String percent = new BigDecimal((double)num*100/sum).setScale(2,BigDecimal.ROUND_HALF_UP)+"%";4.第四种:计算百分比 /** * a / b 计算百分比 * @param a * @param b * @return eg:65.32% */ public static String ADivideBPercent(BigDecimal a,BigDecimal b){ String percent = b == null ? "-" : b.compareTo(new BigDecimal(0)) == 0 ? "-": a == null ? "0.00%" : a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%"; return percent; }
2020年03月04日
731 阅读
0 评论
0 点赞
2020-03-03
Java中关于进制
在Java中关于二进制、八进制、十六进制的辨析八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数?单从数字的角度来讲都有可能!八进制所以在Java中规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数的表达方法。123如果是十进制的话是123,八进制的话,则是83,如在变量赋值时可以以十进制的方式赋值int a = 83; 也可以以八进制的方式赋值,int a= 0123;得到的是同样的结果。十六进制如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是16进制或10进制。16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)如int b = 1;int b=0x1;是同样的含义,int b = 17;与int b = 0x11;表达的是同样的值。不区分正负10进制数有正负之分,比如12表示正12,而-12表示负 12。但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,编译器并不把它当成一个负数。10进制转化其他进制对应的方法,参数:n(原10进制数据),r(进制),返回值10进制转2进制Integer.toBinaryString(n);一个二进制字符串.10进制转8进制Integer.toOctalString(n);一个八进制字符串10进制转16进制Integer.toHexString(n);一个16进制字符串10进制转 r 进制Integer.toString(100, 16);一个r进制字符串
2020年03月03日
600 阅读
0 评论
0 点赞
2020-03-01
pycharm快捷键
常用快捷键1、Ctrl + Enter:在下方新建行但不移动光标;2、Shift + Enter:在下方新建行并移到新行行首;3、Ctrl + /:注释(取消注释)选择的行;4、Ctrl + Alt + L:格式化代码(与QQ锁定热键冲突,关闭QQ的热键);5、Ctrl + Shift + +:展开所有的代码块;6、Ctrl + Shift + -:收缩所有的代码块;7、Ctrl + Alt + I:自动缩进行;8、Alt + Enter:优化代码,提示信息实现自动导包;9、Ctrl + Shift + F:高级查找;10、Alt + Shift + Q:更新代码到远程服务器; 11、Ctrl + N 查找所有的类的名称12、Ctrl + Shift + N 查找项目中的任何文件使用TIPS1.1:PyCharm可以在一个窗口中使用多个项目。要在已打开的窗口中打开项目,请在“文件”菜单上选择“打开”,然后在“打开项目”对话框中选择“在当前窗口中打开”选项,然后选中“添加到当前打开的项目”复选框。步骤:File-->open-->选择要打开的项目-->按图片选择3.2:快速打开编辑器中的任何类,Ctrl + N、Ctrl + Shift + N请按Ctrl + N(Navigate | Class)并开始输入类的名称。 从显示的下拉列表中选择类。您可以使用Ctrl + Shift + N(导航|文件)以类似的方式打开项目中的任何文件3.3 代码完成功能可以让您快速完成代码中的各种语句。例如,开始输入一个类名,然后按Ctrl +空格来完成它。 当有多个选项可用时,它们将显示在查找列表中。3.4:通过按Ctrl +空格两次来调用代码完成特性的一个特殊变体,可以让您完成任何类的名称,而不管它是否被导入到当前文件中。 如果类尚未导入,则会自动生成导入语句。3.5:您可以快速找到所有在整个项目中使用特定类,方法或变量的地方,方法是将脱字符按照符号名称或代码中的用法进行定位,然后按Alt + F7(在弹出式菜单中查找用法)。3.6:要快速查看插入符号处的文档,请按Ctrl + Q(查看|快速文档)。3.7:要导航到代码中某处使用的类,方法或变量的声明,请将插入符定位到使用位置,然后按Ctrl + B。 您也可以点击鼠标的用法按下Ctrl键跳到声明。3.8:您可以使用Ctrl + F12(导航|文件结构)在当前编辑的文件中快速导航。它显示了当前班级的成员名单。 选择要导航到的元素,然后按Enter键或F4键。要轻松找到列表中的项目,只需输入名称即可。3.9:您可以轻松地重命名您的本地变量,并自动更正所有使用它们的地方。要尝试它,将插入符号放在要重命名的变量中,然后按Shift + F6(Refactor | Rename)。 在出现的弹出窗口中输入新名称,或选择一个建议名称,然后按Enter键。3.10:使用代码完成时,您可以使用Tab键在弹出列表中接受当前突出显示的选择。与使用Enter键接受不同,选定的名称将覆盖脱字符右侧的其余名称。 这对于用另一个替换一个方法或变量名是特别有用的。3.11:您是否知道,您可以在PyCharm的编辑器和工具窗口中关闭选项卡,而无需使用上下文菜单命令? 用鼠标指向要关闭的选项卡,然后单击鼠标中键或使用Shift +单击组合就足够了。3.12:要在任何视图(项目视图,结构视图或其他)中快速选择当前编辑的元素(类,文件,方法或字段),请按Alt + F1。3.13:速度搜索在所有树视图中都可用:只需开始输入,然后快速找到必要的项目。3.14:任何工具窗口中的Esc键将焦点移动到编辑器。Shift + Esc将焦点移动到编辑器,并隐藏当前(或最后一个活动)工具窗口。F12键将焦点从编辑器移到最后一个聚焦的工具窗口。3.15:编辑器中的Ctrl + W(扩展选择)选择插入符号处的单词,然后选择源代码的扩展区域。 例如,可以选择一个方法名称,然后是调用这个方法的表达式,然后是整个语句,然后是包含的块等。还可以选择插入的字和源代码的扩展区域, 点击编辑器中的目标区域。3.16:Extract Variable重构可以帮助您简化代码中的复杂语句。 例如,在下面的代码片段中,可以在代码中选择一个表达式,然后按Ctrl + Alt + V(Refactor | Extract | Variable)。3.17:编辑器中的Ctrl + D复制所选块或当前行,而不选择块。3.18:代码| 移动语句向上/向下操作对于重新组织文件中的代码行非常有用,例如,使变量声明更接近变量用法。例如,选择一个代码片段,然后按Ctrl + Shift +向上箭头或Ctrl + Shift +向下箭头。3.19:Ctrl + Shift + J快捷键将两行合并为一行,并删除不必要的空格以符合您的代码样式。3.20:如果光标位于方法调用的括号之间,按下Ctrl + P将弹出一个有效参数列表。3.21:Ctrl + Shift + Backspace(导航|上一个编辑位置)将您带回到您在代码中进行更改的最后一个地方。按Ctrl + Shift + Backspace几次,可以更深入地了解您的更改历史记录。3.22:使用Ctrl + Shift + F7(Edit | Find |突出显示文件中的用法)快速突出显示当前文件中某些变量的用法。使用F3和Shift + F3键浏览突出显示的用法。按Esc删除突出显示。3.23:要查看您的本地文件更改历史记录,请调用本地历史记录| 显示上下文菜单中的历史记录( Local History | Show History)。 您可以浏览不同的文件版本,查看差异并回滚到任何以前的版本。使用相同的上下文菜单项查看目录上的更改历史记录。 你永远不会失去这个功能的任何代码!3.24:Ctrl + E(查看|最近的文件)带来最近访问的文件的弹出列表。 选择所需的文件,然后按Enter打开它。3.25:要在编辑器中的方法之间显示分隔线,请打开编辑器设置,然后选中“外观”页面中的“显示方法分隔符”复选框。3.26:当使用基本代码完成(Ctrl +空格)时,输入标识符中任何地方存在的任何字符。--提示符3.27:使用Alt +向上箭头和Alt +向下箭头键在编辑器中快速移动方法。3.28:使用Ctrl + Shift + V快捷键选择并将最近的剪贴板内容插入到文本中。3.29:您可以通过按Ctrl + O(代码|覆盖方法)轻松地覆盖基类的方法。3.30:为了帮助您了解主菜单中每个项目的用途,将鼠标指针放在该项目上时,其简短说明会显示在应用程序框架底部的状态栏中。3.31:要快速打开编辑器中的任何特定方法或字段,请按Ctrl + Alt + Shift + N(导航|符号)并开始输入其名称。从显示的下拉列表中选择符号。3.32:使用Alt + Shift + C快速查看您最近对项目的更改。3.33:您可以通过拖动鼠标指针轻松进行列选择,同时保持按下Alt键。 alt键同时选择多行3.34:要快速查找菜单命令或工具栏操作,您不需要浏览菜单。 只需按Ctrl + Shift + A(在主菜单上的帮助|查找操作)并开始输入操作的名称。 从建议列表中选择所需的操作。————————————————版权声明:本文为CSDN博主「不二周同学」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_37292229/article/details/81737194
2020年03月01日
677 阅读
0 评论
0 点赞
2020-02-25
免费申请office365 A1 和 a1p 带OneDrive 5T 网盘
打开临时邮箱网址:http://msoffice.tv 方便以后实时更新遂采取此方式,注意支持自定义前缀!点击申请邮箱,可以手动输入自己想要的邮箱前缀,注意账号只有十分钟,请在十分钟之内操作完毕。打开网址:https://products.office.com/en-us/student?tab=students ,填入刚才的临时邮箱,点击GetStartd。A1账号申请地址3产品:5T网盘+网页版Office 365是否支持RaiDrive:是是否免费对外开放申请:是临时邮箱:https://t.odmail.cn申请地址:https://signup.microsoft.com/signup?sku=student A1账号申请地址4产品:5T网盘+网页版Office 365是否支持RaiDrive:是是否免费对外开放申请:是临时邮箱:http://xkx.me申请地址:https://www.microsoft.com/en-us/education/products/office?tab=studentsA1账号申请地址5产品:5T网盘+网页版Office 365是否支持RaiDrive:是是否免费对外开放申请:是临时邮箱:http://xix.men:3000/申请地址:https://signup.microsoft.com/signup?sku=educationA1 Plus账号申请地址1产品:5T网盘+桌面版Office 365是否支持RaiDrive:是是否免费对外开放申请:否说明:由于是不对外免费开放申请的,因此使用的人较少,不容易被封号,账号也不贵,几十块钱一个)或者了解更多关于office 版本之间的差异以及office 365的安装和OneDrive的使用方法,请查看:https://coco56.gitee.io/news/office365.htmlA1 Plus账号申请地址2产品:1G网盘+桌面版Office 365是否支持RaiDrive:否是否免费对外开放申请:是Office2019与Office365专业增强版之间的区别:Office2019是一次性购买,不会在购买后接收功能更新,但会根据需要接收质量和安全修补程序更新;而Office365专业增强版是由Microsoft云支持的基于用户的订阅服务,它提供Office2019所不能及的对一系列服务的访问,并且在一贯基础上接收功能更新,它包括最高效,最安全和最新功能,简而言之,Office365专业增强版包含Office2019版所有功能,并且可随时保持更新。今天给大家带来Office365 A1 Plus账号注册方法,好处是不用破解客户端,登录注册的账号就会显示Office365专业增强版,此次福利随时失效,填写邮箱时候,不想使用您的真实邮箱?那就打开网址输入 http://24mail.chacuo.net/ 使用临时邮箱,邮箱持续24小时,比十分钟邮箱(10分钟)保持时间更长,可以任意设置邮箱名,随时更换邮箱。打开网站后出现随机邮箱,也可自行设置邮箱前缀,设置好后点""设置邮箱"按钮即可。打开网址https://products.office.com/en-us/student?tab=students, 在"Enter your school email address"即输入您的学校电子邮件地址栏里输入临时邮箱前缀+@stu.mao.office.gy打开新页面后,随意选择:我是一个学生( student)或者我是一名老师(teacher),接着会弹出注册界面,简单注册一下,验证码需要返回临时邮箱获取验证码,也可以重新打开开始注册临时邮箱的网址就会看到验证码了==>点开始可以设置密保手机和密保邮箱。注册完之后显示a1的授权打开网址https://account.activedirectory.windowsazure.com/r/#/groups输入账号(前缀+@stu.mao.office.gy),登录Microsoft设置自己的身份验证电子邮件,此时进入帐号可查看版本为365A1,想要成为Plus,必须加入Nruan组才可以点击右栏"组"=>加入组=>左栏选中Nruan.com=>右栏点"加入组"=>填写一些申请文字提交即可,成功加入组后,重新登陆即可显示A1P订阅理由随便填下就行,提交之后就可以了。重新登录会发现多了一个a1p的授权。————————————————版权声明:本文为CSDN博主「COCO56」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/coco56/article/details/95715671
2020年02月25日
1,686 阅读
0 评论
0 点赞
1
...
4
5
6