JS低级学习笔记(后续 更新中)
JS初级学习笔记(后续 更新中)
为了需要,近期开始学习JS相关知识,主要的方式是通过看视频以及查阅相关手册,并动手实践,以下是相关代码。
为了需要,近期开始学习JS相关知识,主要的方式是通过看视频以及查阅相关手册,并动手实践,以下是相关代码。
<!DOCTYPE html> <html> <head> <title>设置一个元素是否可见</title> <meta charset="utf-8"> </head> <style type="text/css"> .tips{width:370px;background:#CCC;display:none;} </style> <script type="text/javascript"> //定义一个函数 function show_or_hide() { //通过id来获取一个元素 var objl =document.getElementById("get_p"); // 这种是行内样式的写法,形如:<p style="display:none;"></p> if(objl.style.display == 'block') objl.style.display = 'none'; else objl.style.display = 'block'; } </script> <body> <!-- 添加点击事件 --> <input type="button" value="隐藏/显示" onclick="show_or_hide()" title="可以点击我一下"> <p id="get_p" class="tips" > 从前有座山,山上有座庙,庙里有个帅哥写代码 </p> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>鼠标移入移出事件</title> <meta charset="utf-8"> </head> <style type="text/css"> #get_input{background:yellow;} </style> <script type="text/javascript"> function over_bg_color() { var obj = document.getElementById('get_input'); // 这种是行内样式的写法,形如:<p style="background:red;"></p> obj.style.background='red'; } function out_bg_color() { var obj = document.getElementById('get_input'); obj.style.background='yellow'; } </script> <body> <!-- 添加鼠标移入移出事件 --> <input id="get_input" type="button" value="隐藏/显示"onmouseover="over_bg_color()" onmouseout="out_bg_color()" > </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>二级菜单</title> <meta charset="utf-8"> <style type="text/css"> #nav{height:50px;background:red;margin:50px auto 0px;} a { float:left;width:250px;line-height:50px; text-align:center;color:#FFF;text-decoration:none; } #detailed { width:250px;height:200px;background:red; position:relative;border-top:2px solid yellow; display:none;left:0px; } </style> <script type="text/javascript"> function show_detailed(index) { var obj = document.getElementById('detailed'); // 设置元素可见 obj.style.display='block'; var move_left = 250*index-250; move_left = move_left+"px";//将结果转换成字符串 obj.style.left =move_left; } function hide_detailed() { var obj = document.getElementById('detailed'); obj.style.display='none'; } </script> </head> <body> <div id="nav"> <!-- 这种直接在行内为元素添加事件不美观,可以写在JS里面 --> <a href="#" onmouseover="show_detailed(1)"onmouseout="hide_detailed()"> 首页</a> <a href="#" onmouseover="show_detailed(2)"onmouseout="hide_detailed()">家电</a> <a href="#" onmouseover="show_detailed(3)"onmouseout="hide_detailed()">手机</a> <a href="#" onmouseover="show_detailed(4)"onmouseout="hide_detailed()">付款方式</a> <a href="#" onmouseover="show_detailed(5)"onmouseout="hide_detailed()">客服</a> </div> <div id="detailed"> <a href="#">一</a> <a href="#">二</a> <a href="#">三</a> <a href="#">四</a> </div> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>改变物体外观</title> <meta charset="utf-8"> <style type="text/css"> body{padding:200px;} #change_box{width:300px;height:300px;background:#CCC;} </style> <script type="text/javascript"> function change_color(want_color) { var obj = document.getElementById('change_box'); obj.style.background = want_color; } function change_size(width_size,height_size) { var obj = document.getElementById('change_box'); obj.style.width = width_size+'px'; obj.style.height = height_size+'px'; } </script> </head> <body> <input type="button" value="变黄" onclick="change_color('yellow')"> <input type="button" value="变绿" onclick="change_color('green')"> <input type="button" value="变红" onclick="change_color('red')"> <input type="button" value="变大" onclick="change_size(500,600)"> <input type="button" value="变小" onclick="change_size(100,200)"> <div id="change_box"></div> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>JS为元素添加事件</title> <meta > <meta charset="utf-8"> </head> <body> <input id="btn1" type="button" value="按钮" onclick="abc()" /> <script type="text/javascript"> // 下面这个获取元素的代码要写在该目标 元素的下面 // 因为程序是从上到下执行的,不然的话会报错 var obtn = document.getElementById('btn1'); function abc() { alert('这是一个弹窗');//可以是单引号,也可以是双引号 } //obtn.onclick=abc;//这种是直接在JS里面为元素添加事件的写法 //这里函数不能加括号 </script> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>全选反选按钮</title> <meta charset="utf-8"> <style type="text/css"> body{padding:150px;background:#CCC;} </style> </head> <body> <input type="button" id="btn_all" value="全选"></input> <input type="button" id="btn_reversed" value="反选"></input> <input type="button" id="btn_no" value="都不选"></input> <div id="ware"> <input type="checkbox" ></input><input type="checkbox" ></input> <input type="checkbox" ></input><input type="checkbox" ></input> <input type="checkbox" ></input><input type="checkbox" ></input> </div> </body> <script type="text/javascript"> function choose_all() { var obj = document.getElementById('ware'); //从一个目标元素中再获取元素 //下面是通过html元素名字来获取,结果是数组 var ch_b = obj.getElementsByTagName('input'); for(var i=0; i <= ch_b.length; i++) //下面的语句类似于:<input type="checkbox" checked="true"></input> ch_b[i].checked = true; } function choose_no() { var obj = document.getElementById('ware'); var ch_b = obj.getElementsByTagName('input'); for(var i=0; i <= ch_b.length; i++) ch_b[i].checked = false; } function choose_reversed() { var obj = document.getElementById('ware'); var ch_b = obj.getElementsByTagName('input'); for(var i=0; i <= ch_b.length; i++) ch_b[i].checked = ( ch_b[i].checked == true )? false:true; } //我并没有直接document.getElementById('');这样获取元素 //按理说要先获取元素,再来操作,不然是不行的, //我也不知道为什么我的这段代码却可以 btn_all.onclick = choose_all; btn_no.onclick = choose_no; btn_reversed.onclick = choose_reversed; </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>选项卡</title> <meta charset="utf-8"> <style type="text/css"> body{padding:150px;} #xuan_xiang_ka{width:208px;height:350px;} .title{height:50px;} .title input{height:50px;width:50px;float:left;border:1px solid #CCC;margin-left:2px;} .active{background:#5CB85C;} #content_box{background:yellow;} #content_box div{display:none;}/*设置子元素不可见*/ </style> </head> <body> <div id="xuan_xiang_ka"> <div class="title"> <input class="active" type="button" value="新闻1"></input> <input type="button" value="新闻2"></input> <input type="button" value="新闻3"></input> <input type="button" value="新闻4"></input> </div> <div id="content_box" > <div style="display:block;"> 从前有座山1 </div> <div> 从前有座山2 </div> <div> 从前有座山3 </div> <div> 从前有座山4 </div> </div> </div> </body> <script type="text/javascript"> var an_niu = document.getElementsByTagName('input'); var temp =document.getElementById('content_box'); var wen_zhang =temp.getElementsByTagName('div'); for(var i=0; i < an_niu.length; i++) { an_niu[i].index = i;//为每个按钮添加序号 an_niu[i].onclick = function () { for(var j=0; j < an_niu.length; j++) { an_niu[j].className = '';//清除类 wen_zhang[j].style.display = 'none'; } this.className = 'active';//当前按钮添加活动类 wen_zhang[this.index].style.display ='block';//当前选项卡可见 //思路:在点击一个选项卡之前,把其他的选项卡都影藏,并清除类 //之后再为当前的选项卡添加属性 } } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>innerHTML练习</title> <meta charset="utf-8"> <style type="text/css"> body{padding:50px;} div{border:1px solid red;width:260px;height:200px;padding:20px;} </style> </head> <body> <input id="text1" type="text"></input> <input id="btn1" type="button" value="设置文字"></input> <div id="div1"> 从前有座山 </div> </body> <script type="text/javascript"> var btn1 = document.getElementById('btn1'); var text1 = document.getElementById('text1'); var div1 = document.getElementById('div1'); btn1.onclick = function () { // 让div里面的文字是text里面的文字 div1.innerHTML = text1.value; } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>月历选项卡</title> <meta charset="utf-8"> <style type="text/css"> *{margin:0px;padding:0px;} .ware{background:yellow;padding:15px 0px 15px 15px;width:285px;margin:100px auto;overflow:hidden;} .month{overflow:hidden;} span{float:left;width:80px;line-height:80px;text-align:center;font-size:16px;color:#FFF;font-weight:bold; margin-right:15px;margin-bottom:15px; background:#999;} .tips{background:red;clear:both;width:240px;padding:15px;font-weight:bold;color:#FFF;} .active{background:#FFF;color:black;} </style> </head> <body> <div class="ware"> <div class="month"> <span class="active">1</span><span>2</span><span>3</span> <span>4</span><span>5</span><span>6</span> <span>7</span><span>8</span><span>9</span> <span>10</span><span>11</span><span>12</span> </div> <div id="setText" class="tips"> </div> </div> </body> <script type="text/javascript"> var obj_month = document.getElementsByTagName('span'); var objTips = document.getElementById('setText'); var arr =[ '这个月有元旦', '我们一起过年吧', '这个月有38妇女节', '4月分有什么节日呢?', '哈哈劳动节快到了', '可惜儿童节不属于我们', '貌似有建党节吧', '这个月有建军节吧么么哒', '教师节到了,给老师一份祝福吧', '一起看阅兵式吧', '光棍节到了,有木有很伤心~', '圣诞节不是中国的~' ]; // 默认显示第一个月 objTips.innerHTML = '<p>1月活动'+'</p>'+arr[0]; for(var i=0; i < obj_month.length; i++) { obj_month[i].index = i; obj_month[i].onmousemove = function () { for(var j=0; j < obj_month.length; j++) obj_month[j].className = ''; this.className = 'active'; objTips.innerHTML = '<p>'+(this.index+1)+'月活动'+'</p>'+arr[this.index]; } } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>数组遍历</title> <meta charset="utf-8"> </head> <body> </body> <script type="text/javascript"> var colorS =['yellow','blue','green','pink','black']; for( var x in colorS)//x 是下标 { alert(colorS[x]); //alert(x); } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>属性用变量代替</title> <meta charset="utf-8"> <style type="text/css"> body{padding:400px; padding-top:200px;} #box{width:300px;height:300px;background:yellow;} </style> </head> <body> <div id="box"></div> <input type="button" value="点击我一下下~" id="btn"></input> </body> <script type="text/javascript"> var value = 'background'; var oBtn = document.getElementById('btn'); var oBox = document.getElementById('box'); oBtn.onclick = function () { oBox.style[value] = 'red'; //等同于 oBox.style.background = 'red'; } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>根据参数个数实现相应功能</title> <meta charset="utf-8"> </head> <body> <div id="J_box" style="width:300px;height:240px;background:#CCC;margin:100px;"></div> </body> <script type="text/javascript"> var oBox = document.getElementById('J_box'); function css () { if(arguments.length == 2) alert(arguments[0].style[arguments[1]]); if(arguments.length == 3) arguments[0].style[arguments[1]] = arguments[2]; } css(oBox,'width','800px'); </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>获取非行间样式</title> <meta charset="utf-8"> <style type="text/css"> #J_box{width:300px;height:240px;background:#CCC;margin:100px;} </style> </head> <body> <div id="J_box"></div> </body> <script type="text/javascript"> var oBox = document.getElementById('J_box'); if(oBox.currentStyle) alert(oBox.currentStyle.width);//IE else alert(getComputedStyle(oBox,false).width);//FF //采用变量的写法 alert(getComputedStyle(oBox , false)['width']); </script> </html> <script type="text/javascript"> // 函数封装 // function getStyle(obj,name) // { // if( obj.currentStyle) // return obj.cur rentStyle[name];//obj.currentStyle.width; // else // return getComputedStyle(obj,false)[name];//getComputedStyle(obj,false).width; // } </script> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>数组的基本操作</title> <meta charset="utf-8"> </head> <body> </body> <script type="text/javascript"> var arr = [1,3,5,7,9,10]; var add = [100,200,300,400,500]; //arr.push(6);//尾部追加一个元素 //arr.pop();//尾部删除一个元素 //arr.unshift('lijun');//头部追加元素 //arr.shift();//头部删除一个 //arr.splice(3,2)//删除元素 起点 长度 从0开始算 //arr.splice(3,0);//从下标3开始,依次删除0个元素 //arr.splice(3,2,6,7);//从下标3开始,依次删除2个,然后添加6,7元素 //arr.concat(add);//两个字符串连接,但是两个数组并没有变 //alert(arr.join('***'));//记得加引号,相邻数组元素间添加分隔符,不会真的改变数组 /*var temp = ['aaa','xxx','dddd','ssss','eeee','bbbbb']; alert(temp.sort());*/ //数组排序,只能排字符串 /*var temp =[6,7,45,8,6,10,7,8,45,1,14,89,39]; alert(temp.sort( function(num1,num2) { return num1 - num2; } ));*/ //数组排序,排数字 // 数组排序的时候要根据实际情况改动,例如传递的是li或者其他元素, // 要把最后在比较的是数值比较 alert(arr); </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>定时器的使用</title> <meta charset="utf-8"> </head> <body> <input id="kai" type="button" value="开启"></input> <input id="guan" type="button" value="关闭"></input> </body> <script type="text/javascript"> //setInterval 间隔 //setTimeout 延时 var okai = document.getElementById('kai'); var oguan = document.getElementById('guan'); function say() { alert('您好~'); } okai.onclick = function () { temp = setInterval(say,2500);//函数只写名字不加括号,变量也是全局的,不然等下下面不能关闭 } oguan.onclick = function() { clearInterval(temp);//这个被关闭的变量是全局的,不要定义成局部的。 } </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>数字时钟,需要相关图片辅助</title> <meta charset="utf-8"> <style type="text/css"> body{background:#555;} .timeBox{width:300px;margin:200px auto;} span{font-size: 50px;} </style> </head> <body> <div class="timeBox"> <img src="./images/0.png"><img src="./images/0.png"> <span>:</span> <img src="./images/0.png"><img src="./images/0.png"> <span>:</span> <img src="./images/0.png"><img src="./images/0.png"> </div> </body> <script type="text/javascript"> function setNumberToStr(number) { // 把数字弄成两位数的,并转换成字符串 if(number < 10) return '0' + number; else return '' + number; } // 获取系统时间 function realTime() { var oDate = new Date(); var hour = oDate.getHours();//获取小时 var minute = oDate.getMinutes();//获取分钟 var second = oDate.getSeconds();//获取秒 return setNumberToStr(hour) + setNumberToStr(minute) + setNumberToStr(second); } function setTime() { var otime = document.getElementsByTagName('img'); var howTime = realTime();//当前时间 转换成字符串格式后存入数组 for(var i=0; i < otime.length; i++) otime[i].src = './images/'+howTime[i]+'.png'; } setTime();//这个是为了解决刷新的时候全部显示0的情况,也可以把一秒设置更小 setInterval(setTime,1000); </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>字符串查找、系统时间</title> <meta charset="utf-8"> </head> <body> </body> <script type="text/javascript"> var times = "我是一个大帅哥"; alert(times.charAt(0));//用来查找字符串中某个坐标中的内容 // 不能是数组,只能是字符串 var odate = new Date(); //alert(odate.getFullYear()); //alert(odate.getMonth()+1);//月份少1 // alert(odate.getDate());//星期几 //alert(odate.getHours());//获取小时 //alert(odate.getMinutes());//获取分钟 //alert(odate.getSeconds());//获取秒 //alert(odate.getDay());//周日是0 </script> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>孩子节点</title> <meta charset="utf-8"> <script type="text/javascript"> window.onload = function() { var oUl = document.getElementById('ul1'); //alert(oUl.childNodes.length);//节点的个数,会包括文本节点。 //for(var i=0; i < oUl.childNodes.length; i++) //alert(oUl.childNodes[i].nodeType);//节点的类型 文本节点->3 元素节点->1 //alert(oUl.children.length);节点的个数,不包括文本节点。 for(var i=0; i < oUl.children.length; i++) oUl.children[i].style.background = 'red'; } </script> </head> <body> <ul id="ul1"> <li></li> <li></li> </ul> </body> </html> <!-- DOM节点 childNodes children nodeType parentNode offsetParent --> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>父节点</title> <meta charset="utf-8"> <style type="text/css"> body{padding-left:400px;padding-top:200px;} a{margin-left:100px;} </style> <script type="text/javascript"> window.onload = function() { //var oUl = document.getElementById('ul1'); //alert(oUl.children[i].parentNode);//错误的写法////////////////////////////// //var oSoon = document.getElementById('soon'); //alert(oSoon.parentNode);//获取某个元素的父节点 var oA = document.getElementsByTagName('a'); for(var i=0; i < oA.length; i++) { oA[i].onclick = function() { this.parentNode.style.display = 'none'; //a的父亲就是li,让li隐藏 } } } </script> </head> <body> <ul id="ul1"> <li>从前有座山 <a href="#">隐藏</a> </li> <li>山上有座庙 <a href="#">隐藏</a> </li> <li>庙里有个老和尚 <a href="#">隐藏</a> </li> <li>老和尚对着小和尚说 <a href="#">隐藏</a> </li> <li>我们这里有座山 <a href="#">隐藏</a> </li> <li>里面有个老和尚 <a href="#">隐藏</a> </li> </ul> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>父级元素</title> <meta charset="utf-8"> <script type="text/javascript"> window.onload = function() { // 通过html标签来获取元素,返回的是数组, //可以在后面加坐标指定要获取某个元素 var demo1 = document.getElementsByTagName('ul'); var demo2 = document.getElementsByTagName('li'); alert(demo2[2].offsetParent);//父级元素(有定位属性的父级元素) } </script> </head> <body> <ul> <li>从前有座山</li> <li>山上有座庙</li> <li>庙里有个老和尚</li> <li>老和尚对着小和尚说</li> <li>我们这里有座山</li> <li>里面有个老和尚</li> </ul> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>孩子节点</title> <meta charset="utf-8"> <style type="text/css"> </style> <script type="text/javascript"> window.onload = function() { // 这是比较便捷的写法,让某些类拥有一些样式 // var oLi = document.getElementsByTagName('li'); // for(var i=0; i < oLi.length; i++) // if(oLi[i].className == 'bgRed') // oLi[i].style.background = 'red'; var oul = document.getElementsByTagName('ul')[0]; for(var i=0; i < oul.childNodes.length; i++) if(oul.childNodes[i].className == 'bgRed') oul.childNodes[i].style.background = 'red'; } </script> </head> <body> <ul> <li class="bgRed">从前有座山</li> <li>山上有座庙</li> <li>庙里有个老和尚</li> <li class="bgRed">老和尚对着小和尚说 </li> <li>我们这里有座山</li> <li class="bgRed">里面有个老和尚</li> </ul> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>代码块封装思想</title> <meta charset="utf-8"> <script type="text/javascript"> function getByClass(oParent,oClass) { var oReturn = [];//存放结果 // 获取该元素下面的所有元素 var oElem = oParent.getElementsByTagName('*'); for(var i=0; i < oElem.length; i++) if(oElem[i].className == oClass) oReturn.push(oElem[i]); return oReturn; } window.onload = function() { var oul = document.getElementsByTagName('ul')[0]; //0搜集的结果都放在这里 var oChange = getByClass(oul,'bgRed'); for(var i=0; i <oChange.length; i++) oChange[i].style.background = 'red'; } </script> </head> <body> <ul> <li class="bgRed">从前有座山</li> <li>山上有座庙</li> <li>庙里有个老和尚</li> <li class="bgRed">老和尚对着小和尚说 </li> <li>我们这里有座山</li> <li class="bgRed">里面有个老和尚</li> </ul> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>DOM 方式操作元素属性</title> <meta charset="utf-8"> <script type="text/javascript"> window.onload = function() { var oa =document.getElementsByTagName('a')[0]; // 获取:getAttribute(名称) // 设置:setAttribute(名称,值) // 删除: removeAttribute(名称) oa.setAttribute('title','哈哈~'); } </script> </head> <body> <a href="#">我很帅</a> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>添加节点</title> <meta charset=" utf-8"> <script type="text/javascript"> window.onload = function() { var oBtn = document.getElementsByTagName('input')[1]; var oTxt = document.getElementsByTagName('input')[0]; var oUl = document.getElementsByTagName('ul')[0]; oBtn.onclick = function() { var oLi = document.createElement('li');//创建一个元素 var inBeforeLi = document.getElementsByTagName('li')[0]; if(inBeforeLi) oUl.insertBefore(oLi,inBeforeLi)//在某个元素之前追加 else oUl.appendChild(oLi);//末尾追加 oLi.innerHTML = oTxt.value; } } </script> </head> <body> <input type="text"></input> <input type="button" value="创建li"></input> <ul> </ul> </body> </html> <!-- *************************************************************************************--> <!DOCTYPE html> <html> <head> <title>删除节点</title> <meta charset=" utf-8"> <script type="text/javascript"> window.onload = function() { var oA = document.getElementsByTagName('a'); var oUl = document.getElementsByTagName('ul')[0]; for(var i=0; i < oA.length; i++) oA[i].onclick = function() { oUl.removeChild(this.parentNode); } } </script> </head> <body> <ul> <li>111<a href="#">删除</a></li> <li>222<a href="#">删除</a></li> <li>333<a href="#">删除</a></li> <li>444<a href="#">删除</a></li> <li>555<a href="#">删除</a></li> <li>666<a href="#">删除</a></li> <li>777<a href="#">删除</a></li> </ul> </body> </html>
版权声明:本文为博主原创文章,未经博主允许不得转载。