本篇主要介绍获取元素的方法、操作元素、数组和字符串的操作方法、定时器和封闭函数、以及贪吃蛇案例;

一、获取元素的方法

  1、document.getElementById:可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

<script type="text/javascript">var oDiv = document.getElementById('div1');
</script>
....
<div id="div1">这是一个div元素</div>

  2、document.getElementByTagName:获取页面上的标签节点元素,获取一个数组对象;

    <script>window.onload = function() {//通过标签名来获取对象var divObj = document.getElementsByTagName('div');//对divObj这个数组对象集合进行遍历  可以使用for循环来实现//[div1Obj,div2Obj,div3Obj....]var divObj_length = divObj.length;for(var i=0;i<divObj_length;i++){//alert(divObj[i])
                alert(divObj[i].innerHTML);}}</script>
    ................<div>黑马程序员1</div><div>黑马程序员2</div><div>黑马程序员3</div><div>黑马程序员4</div><div>黑马程序员5</div>

  3、document.getElementsByName:主要针对于表单,要获取到input 标签的对象(数组对象集合);

    <script>//document.getElementsByName 主要针对于表单window.onload = function() {//第一步:要获取到input 标签的对象(数组对象集合)var input_obj = document.getElementsByName("user")[0];alert(input_obj.value);}    </script>
        .................<input type="text" name="user" value="hello">


二、事件属性

 元素上除了有样式,id等属性外,还有事件属性,常用的事件属性有

  鼠标点击事件属性      (onclick),

  鼠标移入事件属性      (mouseover),

  鼠标移出事件属性      (mouseout),

 将函数名称赋值给元素事件属性,可以将事件和函数关联起来。以下便是所有的时间属性:

  


三、操作元素属性

  获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写。

 2.1 操作元素属性 
  var 变量 = 元素.属性名 读取属性
  元素.属性名 = 新属性值 改写属性

 2.2 属性名在js中的写法 
  1、html的属性和js里面属性写法一样
  2、“class” 属性写成 “className”
  3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”

<script type="text/javascript">window.onload = function(){var oInput = document.getElementById('input1');var oA = document.getElementById('link1');// 读取属性值var sValue = oInput.value;var sType = oInput.type;var sName = oInput.name;var sLinks = oA.href;// 写(设置)属性---样式属性前加上 styleoA.style.color = 'red';oA.style.fontSize = sValue;}
</script>
......
<input type="text" name="setsize" id="input1" value="20px">
<a href="http://www.itcast.cn" id="link1">Helloween</a>

 2.3 操作标签内的值 -- innerHTML

<script type="text/javascript">window.onload = function(){var oDiv = document.getElementById('div1');//读取var sTxt = oDiv.innerHTML;alert(sTxt);//写入oDiv.innerHTML = '<a href="http://www.itcast.cn">传智播客<a/>';}
</script>

......<div id="div1">这是一个div元素</div>

  通常使用innerHTML,通过字符串的拼接的方式,来修改标签内的值;


四、数组及操作方法

  数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的。

 4.1  定义数组的方法

//对象的实例创建
var aList = new Array(1,2,3);//直接量创建
var aList2 = [1,2,3,'asd'];

 4.2  操作数组中数据的方法 

  1、获取数组的长度:aList.length;

var aList = [1,2,3,4];
alert(aList.length); // 弹出4

  2、用下标操作数组的某个数据:aList[0];

var aList = [1,2,3,4];
alert(aList[0]); // 弹出1

  3、join() 将数组成员通过一个分隔符合并成字符串

var aList = [1,2,3,4];
alert(aList.join('-')); // 弹出 1-2-3-4

  4、push() 和 pop() 从数组最后增加成员或删除成员

var aList = [1,2,3,4];
aList.push(5);
alert(aList); //弹出1,2,3,4,5
aList.pop();
alert(aList); // 弹出1,2,3,4

  5、reverse() 将数组反转

var aList = [1,2,3,4];
aList.reverse();
alert(aList);  // 弹出4,3,2,1

  6、indexOf() 返回数组中元素第一次出现的索引值

var aList = [1,2,3,4,1,3,4];
alert(aList.indexOf(1));

  7、splice() 在数组中增加或删除成员

var aList = [1,2,3,4];
aList.splice(2,1,7,8,9); //从第2个元素开始,删除1个元素,然后在此位置增加'7,8,9'三个元素
alert(aList); //弹出 1,2,7,8,9,4

 4.3 多维数组

  多维数组指的是数组的成员也是数组的数组。

var aList = [[1,2,3],['a','b','c']];alert(aList[0][1]); //弹出2;

  批量操作数组中的数据,需要用到循环语句;


五、字符串的操作方法

  1、字符串合并操作:“ + ”,通常可以将 int+'' 来将整型转为字符串类型;

var iNum01 = 12;
var iNum02 = 24;
var sNum03 = '12';
var sTr = 'abc';
alert(iNum01+iNum02);  //弹出36
alert(iNum01+sNum03);  //弹出1212 数字和字符串相加等同于字符串相加
alert(sNum03+sTr);     // 弹出12abc

  2、parseInt() 将数字字符串转化为整数

var sNum01 = '12';
var sNum02 = '24';
var sNum03 = '12.32';
alert(sNum01+sNum02);  //弹出1224
alert(parseInt(sNum01)+parseInt(sNum02))  //弹出36
alert(parseInt(sNum03))   //弹出数字12 将字符串小数转化为数字整数

  3、parseFloat() 将数字字符串转化为小数

var sNum03 = '12.32'
alert(parseFloat(sNum03));  //弹出 12.32 将字符串小数转化为数字小数

  4、split() 把一个字符串分隔成字符串组成的数组

var sTr = '2017-4-22';
var aRr = sTr.split("-");
var aRr2= sTr.split("");alert(aRr);  //弹出['2017','4','2']
alert(aRr2);  //弹出['2','0','1','7','-','4','-','2','2']

  5、indexOf() 查找字符串是否含有某字符

var sTr = "abcdefgh";
var iNum = sTr.indexOf("c");
alert(iNum); //弹出2

  6、substring() 截取字符串 用法: substring(start,end)(不包括end)

var sTr = "abcdefghijkl";
var sTr2 = sTr.substring(3,5);
var sTr3 = sTr.substring(1);alert(sTr2); //弹出 de
alert(sTr3); //弹出 bcdefghijkl

  7、字符串反转

var str = 'asdfj12jlsdkf098';
var str2 = str.split('').reverse().join('');alert(str2);

  关于字符串的操作,上面是常见的方法;若要了解更多关于字符串的,可以参考 W3school手册。

6、定时器

  定时器在javascript中的作用  :1、定时调用函数    2、制作动画

/*定时器:setTimeout  只执行一次的定时器 clearTimeout 关闭只执行一次的定时器setInterval  反复执行的定时器clearInterval 关闭反复执行的定时器*/var time1 = setTimeout(myalert,2000);
var time2 = setInterval(myalert,2000);
/*
clearTimeout(time1);
clearInterval(time2);
*/
function myalert(){alert('ok!');
}

7、贪吃蛇案例

html+javascript

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>贪吃蛇</title><link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body><div class="all"><div class="map"><div class="snake" id="a1"><div class="snake_head" id="0"></div><div class="snake_body" id="1"></div><div class="snake_body" id="2"></div>    </div><div class="food" id="food"></div></div><div class="count"><img src="data:images/snake.png"><p>您当前的分数为:<br><span>0</span></p></div></div>
</body>
<script type="text/javascript">var box=document.getElementById("a1");var oFood = document.getElementById("food");var a=2;var b=[];chushi_left=40;chushi_top=0;left_list=[];top_list=[];// 将蛇块对象存入function aa(){for(i=0;i<a+1;i++){var c=document.getElementById(i+"");b.push(c);}}aa();// 初始化蛇的位置for (i=0;i<a+1;i++){b[i].style.left=40-i*20+"px";b[i].style.top=0+"px";}// 让食物随机移动function fnFmove(){// alert("11");
    oXfood = Math.floor(Math.random(1,5)*20)*20; oYfood = Math.floor(Math.random(1,5)*20)*20; oFood.style.top = oYfood + "px";oFood.style.left = oXfood + "px";}fnFmove()// 定义一个蛇移动函数,参数1以为速度,参数2为方向function move(speed,d){x=b[0].style.left;y=b[0].style.top;// alert(top_list);z// alert()
        cuchu();// 判定蛇的是否撞上食物if (x==oFood.style.left&&y==oFood.style.top){ab=parseInt(left_list[a])-20; // 获取最后一个蛇块的位置并减20
            ba=parseInt(top_list[a]);a+=1;box.innerHTML +=    '<div class="snake_body" id="'+a+'" style="left:'+ab+'px; top:'+ba+'px;"></div>';b.splice(0,a);for(i=0;i<a+1;i++){// 重新获取对象,并且存入xinyuansu=document.getElementById(i+"");b.push(xinyuansu);}    // a+=1// ab=left_list[a-2];// ab=parseInt(ab)-40;// alert(ab);// ba=parseInt(top_list[a-2]);// box.innerHTML+='<div class="snake_body" id="'+a+'" style="left:'+ab+'px; top:'+ba+'px;"></div>';// return;// xx=document.getElementById(a+"");// b.push(xx);// alert(xx);// alert(b[0]);// // alert(box.innerHTML);
            fnFmove();}function panding(){for (i=1;i<a+1;i++){x1=parseInt(b[0].style.left);y1=parseInt(b[0].style.top);z1=parseInt(b[i].style.left);h1=parseInt(b[i].style.top);if (z1==x1&&h1==y1){box.innerHTML="";alert("死掉了");}}}if (d==1){chushi_left+=speed;b[0].style.left=chushi_left+"px";}if (d==2){chushi_left+=speed;b[0].style.left=chushi_left+"px";}if (d==3){chushi_top+=speed;b[0].style.top=chushi_top+"px";}if (d==4){chushi_top+=speed;b[0].style.top=chushi_top+"px";}panding();x=parseInt(b[0].style.left);y=parseInt(b[0].style.top);if(x>800||x<0||y>560||y<0){box.innerHTML="";alert("死掉了");}tihuan();}function tihuan(){for(i=1;i<a+1;i++){b[i].style.left=left_list[i-1];b[i].style.top=top_list[i-1];}left_list.splice(0,a+1); top_list.splice(0,a+1);}function cuchu(){for (i=0;i<a+1;i++){left_list.push(b[i].style.left);top_list.push(b[i].style.top);}}function move_right(speed,fangxiang){move(20,2);}function move_left(speed,fangxiang){move(-20,1);}function move_top1(speed,fangxiang){move(-20,3);}function move_top2(speed,fangxiang){move(20,4);}hhh=setInterval(move_right,150);window.onkeydown=function(ent){var event=ent;switch(event.keyCode){case 37:clearInterval(hhh);hhh=setInterval(move_left,170);break;case 38:clearInterval(hhh);hhh=setInterval(move_top1,170);break;case 39:clearInterval(hhh);hhh=setInterval(move_right,170);breakcase 40: clearInterval(hhh);hhh=setInterval(move_top2,170);break;}}
</script>
</html>

贪吃蛇案例--我写的

css样式:

.all{width: 1100px;height: 600px;background-color: #666;margin: 100px auto;
}
/*计分部分*/
.count{width: 200px;height: 600px;/*background-color: white;*/float: right;border-left: 1px solid white;
}
.count img{margin-top: 200px;margin-left: 40px;
}
.count p{font-size: 18px;color: white;text-align: center;
}
.count span{font-size: 40px;
}/*地图部分*/
.map{width:800px;height: 560px;margin: 20px 40px;background-color: #333333;float: left; position: relative;
}
.food{width: 18px;height: 18px;background: red;border:1px solid white;position: absolute;top: 300px;left: 600px;
}
.snake{height: 20px;background-color:white; position: absolute;top: 0px;left: 0px;
}.snake_head{width: 18px;height: 18px; background-color: blue;border:1px solid white;position: absolute;}
.snake_body{width: 18px;height: 18px; background-color: yellow;border:1px solid white;position:absolute;
}
/*#body01{left: 40px;top: 0px;
}
#body02{top: 0px;left: 20px;
}
#body03{top: 0px;left: 0
}
*/

贪吃蛇样式

别人写的:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>贪吃蛇</title>
<script>var map; //地图类对象var snake; //蛇类对象var food; //食物类对象var timer; //定时器对象var sum=0; //分数//地图类function Map(){this.width=800; //地图宽度this.height=400; //地图高度this.position='absolute'; //定位方式this.color='#cccccc'; //地图颜色this._map=null; //保存地图dom元素this.show=function(){//用于显示地图//创建地图div元素this._map = document.createElement('div');//设置地图样式this._map.style.width = this.width + 'px';this._map.style.height = this.height + 'px';this._map.style.position = this.position ;this._map.style.backgroundColor = this.color ;//将地图div元素追加到body标签之间document.getElementsByTagName('body')[0].appendChild(this._map);};}//食物类function Food(){this.width=20; //宽度this.height=20; //高度this.position='absolute'; //定位方式this.color='#00ff00'; //食物颜色this._food=null; //用于保存食物dom元素this.x=0; //横向第几个格this.y=0; //纵向第几个格this.show=function(){//用于显示食物if(this._food==null){this._food=document.createElement('div');//设置食物样式this._food.style.width = this.width + 'px';this._food.style.height = this.height + 'px';this._food.style.position = this.position ;this._food.style.backgroundColor = this.color ;map._map.appendChild(this._food);}//如果之前创建过,只需要重新设置坐标this.x=Math.floor(Math.random()*40);this.y=Math.floor(Math.random()*20);this._food.style.left = this.x*this.width+'px';this._food.style.top = this.y*this.height+'px';};}//蛇类function Snake(){this.width=20;    //蛇节宽度this.height=20;    //蛇节高度this.position='absolute'; //蛇节定位方式this.direct=''; //蛇的移动方向//所有蛇节全部信息this.body=[[3,2,'red',null],[2,2,'blue',null],[1,2,'blue',null]];this.setDirect = function(code){switch(code){case 37:this.direct='left';break;case 38:this.direct='up';break;case 39:this.direct='right';break;case 40:this.direct='down';break;}}this.show=function(){//用于显示蛇for(var i=0;i<this.body.length;i++){if(this.body[i][3]==null){this.body[i][3] = document.createElement('div');this.body[i][3].style.width = this.width +'px';this.body[i][3].style.height = this.height +'px';this.body[i][3].style.position = this.position;this.body[i][3].style.backgroundColor = this.body[i][2];map._map.appendChild(this.body[i][3]);}//设置蛇节的横纵坐标this.body[i][3].style.left=this.body[i][0]*this.width+'px';this.body[i][3].style.top=this.body[i][1]*this.height+'px';}}this.move = function(){//移动蛇身var length = this.body.length-1;for(var i=length;i>0;i--){//让后面的蛇节的坐标等于前面蛇节的坐标this.body[i][0]=this.body[i-1][0]; //横坐标this.body[i][1]=this.body[i-1][1]; //纵坐标
                }switch(this.direct){case 'right':this.body[0][0]=this.body[0][0]+1;break;case 'down':this.body[0][1]=this.body[0][1]+1;break;case 'left':this.body[0][0]=this.body[0][0]-1;break;case 'up':this.body[0][1]=this.body[0][1]-1;break;default:return;}//判断蛇吃到食物if(this.body[0][0]==food.x&&this.body[0][1]==food.y){var x=this.body[length][0];var y=this.body[length][1];sum++;document.title='分数:'+sum+'分';this.body.push([x,y,'blue',null]);food.show();}//判断撞墙死if(this.body[0][0]<0 || this.body[0][0]>39 ||this.body[0][1]<0 ||this.body[0][1]>19){alert('撞墙死');clearTimeout(timer);return;}//吃到自己死for(var i=1;i<this.body.length;i++){if(this.body[0][0]==this.body[i][0]&&this.body[0][1]==this.body[i][1]){alert('吃到自己死');clearTimeout(timer);return;}}this.show();}}window.onload = function(){map = new Map(); //实例化地图类对象map.show();    //显示地图
        food=new Food(); //实例化食物类对象food.show(); //显示食物
        snake = new Snake(); //实例化蛇类对象
        snake.show();timer = setInterval('snake.move()',100);document.onkeydown = function(){var code;if(window.event){code=window.event.keyCode;}else{code = event.keyCode;}snake.setDirect(code);};}
</script>
</head>
<body></body>
</html>

View Code

  Qver~~~要想了解更多JavaScript的~~ 可参考 http://www.w3school.com.cn/js/index.asp

转载于:https://www.cnblogs.com/littlefivebolg/p/9497133.html

04-JavaScript的操作相关推荐

  1. js 包含某个字符串_[译] 5 大 JavaScript 字符串操作库

    原文地址:5 String Manipulation Libraries for JavaScript 原文作者:Mahdhi Rezvi 译文出自:掘金翻译计划 本文永久链接:https://git ...

  2. JavaScript属性操作

    本篇文章主要是介绍JavaScript 对HTML 属性的读写操作方法... JS 属性读操作 js 读取html的属性是通过 . 来操作的,具体语法如下 元素.属性名 问题1: 如何获取input标 ...

  3. vanilla_如何在Vanilla JavaScript中操作DOM

    vanilla by carlos da costa 通过卡洛斯·达·科斯塔 如何在Vanilla JavaScript中操作DOM (How to manipulate the DOM in Van ...

  4. javascript 字符串操作函数大全

    javascript字符串操作函数小结,收藏起来,总有你会用上! concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf() – 返回字符串中一个子串第一处出现的索 ...

  5. select元素javascript常用操作(转载)

    /*------------------------------------------------------  *作者:xieyu @ 2007-08-14  *语言:JavaScript  *说 ...

  6. 在JavaScript中操作Cookie

    在Windows系统中,cookie通常是被储存在C:\Documents and settings\用户名\cookie目录下(如果系统在C盘).其实每个cookie实际上就是一个文本文件,里面是用 ...

  7. 视频教程-Javascript DOM操作-JavaScript

    Javascript DOM操作 江湖花名King... 何山 ¥39.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠,最少立减5元 ↓↓↓ ...

  8. js初识、JS基础交互、JavaScript 元素操作

    js初识 js外链引入 外链引入.js 通过script标签的src属性引入外部js文件在外部新建一个后缀名为js的文件注意:用于引入外部js文件的script标签,就不要再写其他的js代码,不会执行 ...

  9. JavaScript属性操作 1

    更多内容点击查看:http://weber.pub/ 本篇文章主要是介绍JavaScript 对HTML 属性的读写操作方法... JS 属性读操作 js 读取html的属性是通过 . 来操作的,具体 ...

  10. javascript DOM 操作

    在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...

最新文章

  1. Shell脚本读取命令行参数
  2. PaddleOCR加载chinese_ocr_db_crnn_server/chinese_ocr_db_crnn_modile模型进行中英文混合预测(代码)实践
  3. WCF入门(八)——异常处理2
  4. Duilib教程-自动布局2
  5. 160523、Oracle建立表空间和用户
  6. 哈罗顺风车送到终点吗_没有了顺风车,滴滴“特惠拼车”来了!比拼车更低价,比顺风车更安全吗?...
  7. bzoj4602 [Sdoi2016]齿轮 边权并查集
  8. 数学考不过就裁员引发热议 便利蜂创始人回应:体面的生活要靠奋斗
  9. Linux gtk开发教程,使用GTK+和Glade快速开发Linux图形界面
  10. VSNETcodePrint 2005 SQL ServerPrint 2005
  11. 极限学习机 matlab,深度极限学习机的研究笔记
  12. RGB HSV CMYK LAB颜色空间
  13. connection linux refuse telnet_解决telnet无法连接 Connection refused
  14. wingide运行两个项目_Wing IDE使用教程:部分调试功能介绍
  15. adb 重命名_adb 常用命令-转载
  16. wsl2 安装 Centos8
  17. python解决猴子偷桃问题_猴子偷桃蟠桃园土地是知道的,不举报是不敢吗?
  18. Springboot集成Hadoop+Hbase实现企业能源消耗监测大数据分析系统
  19. AutoJs学习-实现抖音采集
  20. Tcl/Tk入门(中)

热门文章

  1. JS: prompt() 输入框 confim()确认框 alert() 提示框
  2. android 阿拉伯数字转汉字,Android将阿拉伯数字转换为英文数字
  3. linux ora-12162,ORA-12162: TNS:net service name is incorrectly specified
  4. BLS 签名和基于 BLS 签名的门限签名
  5. java计算机毕业设计基于ssm的志愿者活动招募网站
  6. 智能网联汽车风险评估方法EVITA
  7. 你要知道的测试面试题
  8. Everything工具设置书签
  9. 瑞萨E1仿真器(R0E000010KCE00)支持的MCU系列--V850 Family
  10. 淘宝UWP PC版邀请码已经发放给了前20名申请的博友。请在你们的博客园私信里查收。...