<head>
<meta charset="utf-8"/>
<title>m冒泡排序</title>
<script type="text/javascript">
var numbers=[12,23,0,9,3,6];
//添加和删除的方法
numbers.push("a"); //在末尾处添加
document.write("<span>"+numbers+"</span><br>");
numbers.pop(); //在末尾处删除
document.write("<span>"+numbers+"</span><br>");
numbers.unshift("b"); //在开头处添加
document.write("<span>"+numbers+"</span><br>");
numbers.shift(); //在开头处删除
document.write("<span>"+numbers+"</span><br>");
//join方法,返回的是字符串
var str=numbers.join(":");
document.write("<span>"+numbers+"</span><br>"); //不改变原数组
document.write("<span>"+str+"</span><br>");
//concat方法,返回新的数组
var newNum=numbers.concat("wwww");
document.write("<span>"+newNum+"</span><br>");
//reverse方法,改变原来的数组
numbers.reverse();
document.write("<span>"+numbers+"</span><br>");
</script>
</head>
<body>
</body>
</html>
//search() :返回字符串在的位置alert(str.search(/ello/i)); //注意 是 "/"//replace(reg, str) 替换符合标准的正则表达式,返回的是新的字符串,但是原来额不改变alert(str.replace(/ello/i,"iii"));//match(reg) :返回和reg匹配的字符数组。var str2=" 1 + 2 = 3"alert(str2.match(/\d/g));//split(reg) :通过指定的reg切割stralert("1 , 2, 2".split(/\s*,\s*/));
直接量语法
/pattern/attributes
创建 RegExp 对象的语法:
new RegExp(pattern, attributes);
----使用
属性:lastIndex :数组.index+1
方法:test //返回的是boolean值
exec //返回的是数组
setTimeout(code,millisec) //在指定的毫秒数之后调用code,值执行一次
clearTimeout(id_of_settimeout) //取消setTimeout()设置的timeoutsetInterval(code,millisec[,"lang"]) //在指定的毫秒数之后调用code,重复执行clearInterval(id_of_setinterval) //取消setTimeout()设置的timeout例子:<!DOCTYPE HTML><html><head><meta charset="utf-8"/><title>计时器</title><style type="text/css">#time{width: 100px;height: 100px;margin: 0 auto;background:#c9c9cc;text-align: center;line-height: 100px;color: red;}</style><script type="text/javascript">var id;//开始就执行function init(){id=setInterval(show_time,1000);}//显示时间function show_time(){var date =new Date();var time =date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();document.getElementById("time").innerHTML=time;}//结束记时function stop(){clearInterval(id);}</script></head><body οnlοad="init()"><div id="time"></div><input type="button" value="start" οnclick="init()" ><input type="button" value="stop" οnclick="stop() "></body></html>2,层的移动,广告动画的实现---获得div的高和宽div.style.left=x;alert(div.style.left)---获得div的高和宽度,并去掉单位alert(div.style.posLeft); //这个只是只是用与ie浏览器alert(parseInt(div.syle.left))---代码:<!DOCTYPE HTML><html><head><meta charset="utf-8"/><title>广告动画</title><style type="text/css">#ad{width: 100px;height: 75px;background: url(images/Penguins.jpg);position: relative;}</style><script type="text/javascript">var x=10,y=10;var ad=null;var id=null;var height=null;var flag=false;function init(){ad=document.getElementById("ad");ad.style.posLeft=x;ad.style.posTop=y;// alert(ad.style.posLeft); //posLeft仅在ie中支持id=setInterval(move,100);}function move(){height=document.documentElement.clientHeight-ad.offsetHeight;if(y>=height){flag=true;y=height;}if(y<=10){y=10;flag=false;}if(flag){y-=10;ad.style.posTop=y;}else{y+=10;ad.style.posTop=y;}}</script></head><body οnlοad="init()"><div id="ad"></div></body></html>3,打开窗口的方法:window.open(URL,name,features,replace)--定时打开窗口:setTimeout("self.close()",5000); //设置窗口在5秒后自动关闭--向打开的窗口中写入内容:var win=window.open("dom2.html","","width=100px,height=100px");win.document.write("aaaa"); //向新打开的窗口中写入内容--------------------------------------------------------location对象:window的location的属性底层调用的就是Location,用于得到URLwindow的Screen对象底层调用的就是screen对象,用于得到浏览器的信息window的history对象底层调用的就是History对象,用于展示访问过浏览器地址的信息的展示-----------------------------------------对话框:alert :显示一条信息并等待用户关闭confirm :显示一条信息,要么“确定”,要么“取消”,并返回布尔值prompt :显示一条信息,等待用户输入字符串,并返回字符串---模式对话框:window的一个属性:showModalDialog(url,[传递的参数],设置) //??????没有办法正常使用----------------------------------DOM文档对象模型1,概念和用途:概念:是结构化的,可以获得文档的属性,是独立于编程语言的。用途:
- 查询和选取元素
- 遍历文档,找到文档的元素的祖先,兄弟,后代元素
- 查找和设置元素的属性和内容
- 创建、插入和删除节点
- HTML表单
2,查找元素:---doocument.getElementById()---document.getElementsByName()---document.getElementsByTagName()---document对象:对象集合,对象元素,对象方法3,遍历文档:文档对象中有节点节点对象常用的属性:parentNode ---父节点childNodes ---子节点对象的集合firstChild,lastChildnextSibling,previousSibling --该节点中兄弟节点的前一个和后一个对应于节点的属性:nodeType ---9代表document节点1代表Element节点3代表Text节点8代表Comment节点nodeValuetext和comment节点中的内容nodeName --标签名4,修改文档:使用方法+innerHTML的方式function changeValue() {var obj=document.getElementById("hello");obj.innerHTML="<span class='ctn'>hello<span>";5,创建节点:creatElement: 创建元素节点creatTextNode:创建文本节点例子:动态加载js文件<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>动态的加载js</title><script type="text/javascript">function loadJS1(url){var js1=document.createElement("script");var head=document.getElementsByTagName("head")[0];js1.src=url;head.appendChild(js1);}</script></head><body><input type="button" id="btn1" value="加载js1" οnclick="loadJS1('test1.js')"></body></html>例子2:动态的创建表格,并且实现奇数行和偶数行的颜色的交替变换:<!DOCTYPE html><!--动态创建表格,并使其奇数和偶数行的颜色不一样--><html lang="en"><head><meta charset="UTF-8"><title>动态创建表格</title><style type="text/css">.r1{color: red;}.r2{color: blue;}</style><script type="text/javascript">function createTable(row,col){ var body=document.getElementsByTagName("body")[0];var table=document.createElement("table");for(var i=0;i<row;i++){var tr=document.createElement("tr");for(var j=0;j<col;j++){var td=document.createElement("td");td.innerHTML="列"+j;tr.appendChild(td);}table.appendChild(tr);}body.appendChild(table);table.border="1px";changeColor();}function changeColor(){var trs=document.getElementsByTagName("tr");// alert(trs.length);for( var i=0;i<trs.length;i++){if(i%2==0){trs[i].className="r1";}else{trs[i].className="r2";}}}</script></head><body οnlοad="createTable(4,5)"></body></html>------------------------------------------------------6,插入和删除节点:都是相对于父节点的插入节点的方法:--appendChild()--insertBefore(要插入的节点,相对的节点)删除节点的方法:removeChild()例子:插入和删除:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>插入和删除节点</title><script type="text/javascript">function insert(){var table=document.getElementsByTagName("table")[0];var tr=document.createElement("tr");var td1=document.createElement("td");var td2=document.createElement("td");var td3=document.createElement("td");td1.innerHTML="1";td2.innerHTML="小明";td3.innerHTML="信计";//插入table.appendChild(tr);tr.insertBefore(td1,null);tr.appendChild(td3);tr.insertBefore(td2,td3);}function delete1(){var table=document.getElementsByTagName("table")[0];var trs=document.getElementsByTagName("tr");table.removeChild(trs[trs.length-1]);}</script></head><body><input type="button" id="insert" value="插入一行" οnclick="insert()"><input type="button" id="delete" value="删除一行" οnclick="delete1()"><table id="table"><tbody><tr><th>序号</th><th>姓名</th><th>专业</th></tr></tbody></table></body></html>动态的添加城市:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>下拉列表</title><script type="text/javascript">function addCity(){var cityName=document.getElementById("city").value;var cityList=document.getElementById("cityList");var city=document.createElement("option");city.innerHTML=cityName;cityList.appendChild(city);}</script></head><body><input type="button" id="addCity" value="添加城市" οnclick="addCity()"><label>请输入要添加的城市</label><input type="text" id="city"><select id="cityList"></select></body></html>--------------------------级联的例子:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>下拉列表的级联</title><!--月份和日期的添加既可以使用str拼接的方式也可以使用dom的方式,本列子使用的是dom的方式--><script type="text/javascript">function init(){//添加年var yearList=document.getElementById("year");var date= new Date();var year=date.getFullYear();for(var i=1900;i<=year;i++){var years=document.createElement("option");years.innerHTML=i;yearList.appendChild(years);if(i==year){years.selected=true;}}//添加月var month=date.getMonth();var monthLists=document.getElementById("month")for (var i=1;i<=12;i++){var monthList=document.createElement("option");monthList.innerHTML=i;monthLists.appendChild(monthList);if(i==month){monthList.selected=true;}}}function getDay(){var year=parseInt(document.getElementById("year").value);var month=parseInt(document.getElementById("month").value);var day=document.getElementById("day");var count=0;var diffDay=0;//清除 ,放在for循环的前面while(day.firstChild){day.removeChild(day.firstChild);}//判断是否为润年if((year%400==0)||(year%4==0 && year%100!=0)){count=1;}//判断是月还是小月switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:diffDay=3;break;case 4: case 6: case 9: case 11:diffDay=2;break;case 2:diffDay=count;break;}var dayLength=28+diffDay; //实现月份的日子的控制for(var i=1;i<=dayLength;i++){var dayList=document.createElement("option");dayList.innerHTML=i;day.appendChild(dayList);}}</script></head><body οnlοad="init();getDay()"><table><!-- <input type="button" οnclick="getDay()"> --><tbody><tr><td>出生日期</td><td><select name="year" id="year" οnclick="getDay()"></select><label>年</label><select name="month" id="month" οnclick="getDay()"></select><label>月</label><select name="day" id="day"></select><label>日</label></td><td></td></tr></tbody></table></body></html>7,表单元素的访问:访问方法:document.表单名字.要访问的方法名();访问表单中的元素:---通过自己定义的名字document.myForms.psw---通过数组的形式document.forms[0].elements[0];--通过links访问超链接---------------------------------------------------------------------------------------------------------javascript的事件处理:1,常用的事件:--blur事件:失去焦点的事件,多用于文本框--load事件:--click事件--submit事件--mouseover事件 :鼠标悬停事件--mouseout事件 :鼠标移开事件2,event对象---event对象表示对象的状态。---event对象只在是事件发生的过程中有效。---fromElement和toElement属性只对mouseover和mouseout有意义。?????????图片这个没有办法弄:????????event事件不能用3,键盘事件:--keydown :键盘按下--keyup :按下释放--keypress :键盘按下并释放4,事件的注册:--html属性:onXx--javascript对象属性:document.getXX--addEventListener("cliclk",function(){},ture)//true获取funciton的返回值-----------------------------------------------------------------------