JavaScript初探一
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> table { border: 1px solid #0094ff; } </style> <script type="text/javascript"> //00.注意,js代码无差别折叠,ctrl+m+h //01.js代码写在javascript标签中,一般放在 head标签里面(约定_规范),放在其他地方也行 //02.js中定义变量, var关键字,js中定义对象,new Object() var fox = 123; var foxage = 18.5; var foxSex = true; var foxName = "狐狸一号"; var people = new Object(); people.skill = "吃饭饭"; //03.js中 对象的字面量表示法 var animal = { skill: "打小动物", height: "18cm" } //04.js中 数组长度可变 //js中的数组,可以放任意元素 //js中,变量定义了,未赋值 就是 undefined var numArr = new Array(); // alert(numArr.length); numArr.length = 10000; //alert(numArr.length); numArr[0] = "小二黑"; numArr[9999] = 998; //alert(numArr[0] + "||" + numArr[9999] + "||" + numArr[2]); var haha; // alert(haha) //05.判断语句 // string true 数字(除0以外) 对象 数组 // false 0 undefined null NaN //var smallFox = "胡二皓"; //if (null) { // alert("这是大女儿"); //} else { // alert("这是二小姐"); //} //06.选择语句 //写法 跟c#类似,但是 break 可以不写,会直接向下执行 //var nowDay="星期一"; //switch (nowDay) { // case "星期一": // alert("睡觉觉"); // case "星期二", "星期三", "星期四": // alert("上班班"); // break; // default: //} //07.循环语句 //07.1for c#一样 for (var i = 0; i < 2; i++) { // alert("捏方便面_哈哈"); } //07.2while循环 do while //while (true) { //} //do { //} //while(true) //07.3for in 循环 //没有办法tab出来 需要自己写, //一般用来循环对象 //item 访问到的是属性名,通过对象[属性名]可以取到属性值 //var lunch = { // food1:"白切鸡",food2:"叉烧饭",food3:"叉烧猪脚双拼" //} //for (var item in lunch) { // alert(item + ":" + lunch[item]); //} //08方法(函数)的定义 //命名规范跟c#一样 //形参 和实参可以不匹配, //如果定义了形参,不传,那么就是undeifned //如果传多了,只能接收到形参个数一样的实参 //无参无返回值的方法 function SayHi() { //alert("成龙大哥好啊"); } //有参无返回值 function EatFood(foodName) { alert("水煮肉片,味道不错" + foodName + "味道也可以"); } //EatFood(123); //有参,又返回值 //js方法有一个默认的返回值 undefined //也可以理解成,定义变量.未赋值,就是undefined function BuyFood(money) { if (money > 5 && money < 10) { return "兰州拉面"; } else if (money >= 10) { return "水煮肉片"; } } var someFood = BuyFood("铁板牛肉"); // alert(SayHi()); //09.重要 js中方法也是对象 //可以new出来 //可以为方法对象添加属性 var peopleRun = new Function("alert('123');"); // peopleRun(); peopleRun.sayhi = "1233"; function peopleEatFood() { alert("肚子饿了,吃饭饭"); } peopleRun.eatFood = peopleEatFood; // peopleRun.eatFood(); //匿名函数 //没有名字的函数 peopleEatFood.jump = function () { alert("大跳,大跳"); } peopleEatFood.jump(); </script> </head> <body> <table> <tr> <td>姓名</td> </tr> </table> </body> </html>
全局函数
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript"> //01.alert()输出内容 //02.confirm()选择的框,形参是提示信息,选择确定,返回true 选择取消返回false //var eatOrNot = confirm("今天中午吃饭吗?"); // alert(eatOrNot); //03.prompt()输入框,第一个形参,提示信息,第二个形参默认值 //点击确定,获取文本内容,点击取消就为null //var sleepWhere = prompt("今天中午睡哪里?", "教室我看就不错"); //alert(sleepWhere); //小练习 让用户依次输入两个数字,然后将这两个数字的和打印给用户看 友情提示,运算符,跟c#一样 var num1 = parseInt( prompt("请输入第一个数字")); var num2 = parseInt( prompt("请输入第二个数字")); alert(num1 + num2); //04.转型parseInt() //数字,直接转换成数字 //数字+字母,从左往右转换,直到遇到字母,就跳出 //字母+数字,NaN not a num //alert(parseInt(prompt("请随便输入"))); //alert(parseFloat(prompt("请随便输入"))); //05.math这个函数里面提供了一些数学方法,比如四舍五入,天花板函数 //06.转换数字的新方法 //Number() int float 直接转换 但是不能转换 字母和数字拼接的 // alert(Number(prompt("请输入一些东西")) + 1); if (Number("abc")) { alert("对了"); } else { alert("不对哦"); } </script> </head> <body> </body> </html>
dom元素初识
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <input type="button" value="点击吃饭饭" id="btnEatFood" name="ha"/> <br /> <label>食物名称:</label> <input type="text" id="foodName" /> </body> </html> <script type="text/javascript"> //00.alert可以阻断浏览器线程,其他的弹窗也会阻断线程 //01.通过id获取dom元素 //alert("稍微等一会"); //01.通过id获取dom对象 //document.getElementById("btnEatFood");通过id获取单个对象 //dom元素的属性可读可写 //var inputObj = document.getElementById("btnEatFood"); //inputObj.value = "晚上好好睡觉"; //inputObj.type = "text"; //inputObj.name = "捏哈哈"; // alert(inputObj.value); //02.元素事件 document.getElementById("btnEatFood").onclick = function () { alert("大家好,马上吃午饭了"); //获取文本框里面的文本质 alert(document.getElementById("foodName").value); } </script>
小练习
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <label>数字1</label> <input type="text" id="num1" /> <br /> <label>数字2</label> <input type="text" id="num2" /> <br /> <input type="button" id="sum" value="点击求和" /> <table> <tr> <td></td> </tr> </table> </body> </html> <script type="text/javascript"> //01.添加点击事件 document.getElementById("sum").onclick = function () { //获取两个文本框里面的值 加起来,给用户看 var num1 = document.getElementById("num1").value; var num2 = document.getElementById("num2").value; alert(parseInt(num1) + parseInt(num2)); } </script>
dombom
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <ol> <li id="apple" class="fruit" >小苹果</li> <li class="fruit">小榴莲</li> <li id="vegettableOne">小南瓜</li> <li id="Twodog" class="littleDog">小哈士奇</li> </ol> </body> </html> <script type="text/javascript"> // window.location = "http://www.baidu.com"; // window.close(); //01.window对象相当于是页面中的顶级对象, //如果是通过window.xx 的方式写出来的变量 可以省略掉 window. //我们定义的所有 全局 变量,都相当于为window对象添加属性 window.sayHi = "123"; var fox = "小狐狸"; function sayHello() { var people = "火星人"; } //----------分割线=----------------------------------- //02.dom对象时存放在 window对象的document属性下面 //document对象为我们提供了很多种获取dom元素的方式 //02.1byid 通过id获取单个dom元素 //双标签里面的文本值,通过innerHTML修改 // document.getElementById("apple").innerHTML = "西兰花"; //02.2byClass 获取所有符合 class的 元素 返回的是dom数组无论元素个数是多少个 //注意:写js代码的时候,可能出现没有智能提示---不要不敢写哦 var fruitObjs = document.getElementsByClassName("fruit"); for (var i = 0; i < fruitObjs.length; i++) { fruitObjs[i].innerHTML = "西洋菜"; } // document.getElementsByClassName("littleDog").innerHTML = "大哈士奇"; //02.3byTagName获取的也是dom数组 //修改样式,必须通过style点出来,如果在css中 是 background-color的写法 需要改写为 backgroundColor var liObjs = document.getElementsByTagName("li"); for (var i = 0; i < liObjs.length; i++) { liObjs[i].style.color = "yellow"; liObjs[i].style.backgroundColor = "#0094ff"; } //----------分割线=--------------------------s--------- //----------分割线=----------------------------------- </script>
this
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <input type="button" value="点击明天休息" id="tomorrowSleep"/> </body> </html> <script type="text/javascript"> //js中方法体里面的this 看 这个方法由谁点出来 document.getElementById("tomorrowSleep").onclick = function () { alert(this.value); } //用户点击按钮的时候 浏览器调用了 document.getElementById("tomorrowSleep").onclick(); function sayHello() { alert(this.value+"1"); } window.sayHello(); //js中重新为元素属性复制,会覆盖之前的 document.getElementById("tomorrowSleep").onclick = sayHello; </script>
HTMLText
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <div style="height: 100px; width: 100px; border: 1px solid #0094ff" id="divBox"> <input type="button" value="测试用按钮1" /> <input type="button" value="测试用按钮2" /> <input type="button" value="测试用按钮3" /> </div> <input type="button" value="HTML" id="btnHTML" /> <input type="button" value="Text" id="btnTEXT" /> </body> </html> <script type="text/javascript"> //innerHTML如果设置的是 符合html规范的标签,那么浏览器会解析成html代码 //可以使用InnerHTML来清空某些元素内部的所有元素 document.getElementById("btnHTML").onclick = function () { var inputStr = prompt("请输入内容_HTML"); //设置给div document.getElementById("divBox").innerHTML = inputStr; } //innerText不管输入什么,都当成字符串 //innerText火狐不支持 contextText(火狐用) //后面做开发用的是jq document.getElementById("btnTEXT").onclick = function () { var inputStr = prompt("请输入内容_Test"); //设置给div document.getElementById("divBox") = inputStr; } </script>
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> ol { list-style: none; text-align: center; } li { border: 1px solid #0094ff; width: 200px; height: 30px; line-height: 30px; } </style> </head> <body> <input type="button" id="btnAdd" value="追加li标签" /> <input type="button" id="btnRemove" value="删除选中li标签" /> <input type="button" id="btnInsert" value="制定位置插入li标签" /> <ol id="olList"> <li>红烧排骨</li> <li>糖醋里脊</li> <li>剁椒鱼头</li> <li>驴肉火烧</li> <li>鱼香肉丝</li> </ol> </body> </html> <script type="text/javascript"> //选中的li标签; var liSelected; //-----------风格线-下面是方法上面是变量-------- //00.为所有的li标签 添加点击事件 var liObjs = document.getElementsByTagName("li"); //为每一个li标签设置点击事件 for (var i = 0; i < liObjs.length; i++) { liObjs[i].onclick = highSel; } //01.为新增按钮添加点击事件 document.getElementById("btnAdd").onclick = function () { //01.创建dom元素 var liCreate = document.createElement("li"); //02.接受用户输入,并且将用户输入设置到创建的li标签中 liCreate.innerHTML = prompt("请输入问本值"); //03.追加到ol标签里面 document.getElementById("olList").appendChild(liCreate); //04设置点击事件 liCreate.onclick = highSel; } //02.为删除按钮添加点击事件 //dom元素的删除,注意,不能自杀,需要他杀-通过父元素的 removeChild方法来删除 //dom元素.removeChild方法来删除 只是将dom元素从dom树里面移除,dom元素还在内存中 document.getElementById("btnRemove").onclick = function () { //02.1测试删除代码 //var liObjs = document.getElementsByTagName("li"); //document.getElementById("olList").removeChild(liObjs[0]); //调用ol标签的删除放发 document.getElementById("olList").removeChild(liSelected); //将liselected设置为undifned liSelected = undefined; } //03.为插入按钮 添加点击事件 //注意,insertBefore在指定位置插入dom元素 父元素点出来的 //如果不传指定元素位置,那么在最后追加 document.getElementById("btnInsert").onclick = function () { //01.创建dom元素 var liCreate = document.createElement("li"); //02.接受用户输入,并且将用户输入设置到创建的li标签中 var inputStr = prompt("请输入问本值"); //判断文本的正确性 if (inputStr == null||inputStr.trim()=="") { return; } //如果不为空才设置 liCreate.innerHTML = inputStr; //03.插入到指定的位置到 document.getElementById("olList").insertBefore(liCreate, liSelected); //04设置点击事件 liCreate.onclick = highSel; } //修改逻辑 //01.判断是否选中li标签 //02.创建一个文本框 //03.设置文本框的.value //04.将文本框追加到li标签里面 //05.设置文本框的失去焦点事件onblur //05.1失去焦点的时候,获取文本框的value值,设置给li标签 //------------全局函数 //高亮选中方法 function highSel () { //这里的this就是点击的那个li标签 liSelected = this; //还原其他的li标签的颜色 for (var j = 0; j < liObjs.length; j++) { liObjs[j].style.color = "black"; } //高亮显示选中 this.style.color = "pink"; } </script>
编辑
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <input type="button" value="修改选中" id="btnEdit" /> <ol> <li>小苹果</li> <li>小西瓜</li> </ol> </body> </html> <script type="text/javascript"> //全局变量 保存点击的li标签 var liSelect = undefined; //添加高亮选中方法 var liObjs = document.getElementsByTagName("li"); for (var i = 0; i < liObjs.length; i++) { liObjs[i].onclick = function () { //还原其他 for (var j = 0; j < liObjs.length; j++) { liObjs[j].style.backgroundColor = "white"; } this.style.backgroundColor = "pink"; //为全局变量赋值 liSelect = this; } } //为修改按钮添加点击事件 document.getElementById("btnEdit").onclick = function () { //创建一个input标签 var inputEdit = document.createElement("input"); //设置input标签的value值 inputEdit.value = liSelect.innerHTML; //清空 liSelect.innerHTML = ""; //将input标签追加到li标签里面 liSelect.appendChild(inputEdit); //让文本框获得焦点 inputEdit.focus(); //为文本框添加失去焦点事件 inputEdit.onblur = function () { if (inputEdit.value.trim()=="") { alert("不能为空"); this.focus(); return; } //将文本框的value值 设置给li标签的html值 liSelect.innerHTML = this.value; } } </script>