Web基础之JavaScript实战
来源:互联网 发布:hitleap类似的软件 编辑:程序博客网 时间:2024/05/22 20:43
2.1 <script>标签可以写在文档的任何位置
2.2 JavaScript的执行顺序:按照在HTML文件中出现的顺序依次执行
2.1 JavaScript 类型:undefined、null、String、Boolean、Number、Object(注意,function是Object的子类)
2.2在JS中,一个未初始化的变量,它的值就是undefined
2.3 如果一个变量预计将要指向一个对象,可以设置初始值为null
2.4 双引号或者单引号包裹的内容就是字符串String
2.5 Boolean: true、false
2.6 Number:
正无穷大:Infinity
负无穷大:-Infinity
不是一个数字(Not a Number):NaN,用isNaN()判断是否是一个数字
在JS除0:正数/0会得到正无穷大,负数/0会得到负无穷大,0/0会等到NaN
字符串转为Number类型:parseInt, parseFloat
2.7 Object:
定义一个对象:
var obj = {}; 或者
var obj = {age:20, name:"Peter", address:"南华大学计算机学员"};
或者
var obj = new Object();
给对象加属性:
obj.name = "张三";
obj.sex = "Female";
给对象加方法:
obj.toString = function() {
console.log("name=" + this.name + ", sex=" + this.sex);
};
对象属性访问:
用点号(.) 访问,如:obj.sex ; obj.address
用方括号([])访问,如:obj["address"]
2.8 Fuction:
函数定义:
function name () {}
或者
var name = function(){};
2.9 Array: Array不是定长的,定义的时候不需要指明长度(指明也不会报错,但是呢如果超过这个长度,也不会报错),类比java.util.ArrayLIst,另外,由于JS是弱类型语言,所以不要求数组中的元素都是同一类型
定义:
var arr = [‘ele1’, ‘ele2’, 1];
或者:
var arr = new Array(‘ele1’, ‘ele2’, 1);
使用谷歌浏览器测试(打开谷歌浏览器,按下F12进入,选择Console选项卡,在这里我们可以尽情测试,还有很多API可以在这里查找)
三、常用API:
3.1 document.getElementById(eleId) :获取当前页面的 id属性为eleId的元素
3.2document.getElementsByClassName(className):获取当前页面所有的class属性为className的元素,返回一个JS数组
3.3 document.getElementsByTagName(tagName): 获取当前页面所有的元素名为tagName的元素,返回一个JS数组
3.4 [htmlElement].innerHTML: 获取htmlElement的内部HTML文本,有可能是纯文本。例如:
document.getElementsByTagName(“pre”)[0].innerHTML;
如果要改变 htmlElement的内部HTML,直接给innerHTML赋值即可:
document.getElementsByTagName("pre")[0].innerHTML="测试";
3.5 动态创建元素,并添加到指定的父元素下:
var inputObj = document.createElement("input");
inputObj.type = "text";
var divs = document.getElementsByTagName("div");
divs[0].appendChild(inputObj);
3.6 获取input的值:
var inputObj = document.getElementsByName("userName")[0];
inputObj.value;
3.7 [htmlElement].addEventListener(eventName, function):给htmlElement元素添加事件监听器,eventName要监听的事件名称,function处理该事件的函数。
例如:
// 给 id为provinceSelect 的下拉列表,注册change事件的监听
var provinceSelectObj = document.getElementById("provinceSelect");
provinceSelectObj.addEventListener("change", function(){});
3.8 setInterval(function, milliseconds):设置每隔 millisenconds毫秒数,执行一个function
3.9 setTimeout(function, milliseconds): 设置 millisenconds 毫秒数之后,执行一个funciton,只执行一次
四、注意的问题:
由于浏览器对HTML 的解析是从上到下解析的,所以放在 <head> 标签里的<script>里的JS代码,要注意不要直接去获取<body>中的元素(因为浏览器此时还没有解析到<body>,所以body中的元素此时都是null),而应该放到<body>元素的load事件中去获取,或者把<script>代码放到文档的最后(即</body>之后,</html>之前)。
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>注册界面</title><!--外部引入注册界面CSS样式--><link rel="stylesheet" type="text/css" href="css/regesit.css" /><!--引入外部的JS代码文件--><script src="js/regesit.js" type="text/javascript" charset="utf-8"></script></head><body><!--页面展示效果--><div class="topwelcome"><span class="weltext">欢迎注册华信会员</span></div><div class="regesit"><span class="info">请输入用户名:</span><input id="userName" type="text" value="请输入用户名" onfocus="fouced1()" onblur="lostfocus1()" /><br /><span class="info">请输入密 码:</span><input id="pwd" type="text" value="请输入密 码" onfocus="fouced2()" onblur="lostfocus2()" /><br/></div><div class="bottomdiv"><span class="bottontext">©衡阳市华信科技教育有限公司</span></div></body></html>
.topwelcome{margin-top: 40px;text-align: center;}.weltext{font-size: 30px;font-family:"微软雅黑";color:deepskyblue;font-weight: bold;}.regesit{margin-top: 10px;text-align: center;}.info{font-size: 15px;font-family:"华文行楷";font-weight: bold;}span{margin-top: 40px;text-align: center;}input{margin-top: 30px;height: 25px;color:lightgray;font-family: "微软雅黑";font-size: 15px;}.bottomdiv{margin-top: 20px;text-align: center;}.bottontext{font-size: 15px;font-family:"华文行楷";color: gainsboro;}
//第一个文本获得焦点逻辑处理function fouced1(){var userName =document.getElementById("userName");if(userName.onfocus && userName.value=="请输入用户名"){userName.value="";}}//第二个文本框获得焦点逻辑处理function fouced2(){var pwd =document.getElementById("pwd");if(pwd.onfocus && pwd.value=="请输入密 码"){pwd.value="";}}//第一个文本框失去焦点逻辑处理function lostfocus1(){var userName =document.getElementById("userName");if(userName.value==""){userName.value="请输入用户名"}}function lostfocus2(){var pwd =document.getElementById("pwd");if(pwd.value==""){pwd.value="请输入密 码"}}
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>省市联动效果</title><!--引入CSS样式和JS文件--><script src="js/provinceandcity.js" type="text/javascript" charset="utf-8"></script><link rel="stylesheet" type="text/css" href="css/provinceandcity.css"/></head><body><div><!--界面展示--><span>省份:</span><select id="province" onchange="city()"><option value="" selected="selected">--请选择--</option><option value="beijing" >北京</option><option value="jiangxi" >江西</option><option value="hunan" >湖南</option></select><span>城市:</span><select id="city"><option value="" selected="selected">--请选择--</option></select></div></body></html>
div {width: 80%;height: 50px;text-align: center;margin-top: 50px;}span {font-size: 16px;}select {width: 150px;height: 30px;font-size: 15px;margin: 20px;}option {width: 150px;height: 100px;font-size: 15px;}
function city() {//通过Id获取选择的省份var provinceObj = document.getElementById('province');//根据id获取市级标签var cityObj = document.getElementById('city');var selectProvince = provinceObj.value;//根据选择的省份设置市级标签中的内容if(selectProvince == "") {cityObj.innerHTML = '<option value="" selected="selected">--请选择--</option>';} else if(selectProvince == "beijing") {cityObj.innerHTML = '<option value="chaoyangqu" selected="selected">朝阳区</option>' +'<option value="tiananmen" >天安门</option>' +'<option value="yiheyuan" >颐和园</option>' +'<option value="zijincheng" >紫禁城</option>';} else if(selectProvince == "jiangxi") {cityObj.innerHTML = '<option value="nanchang" selected="selected">南昌</option>' +'<option value="ganzhou" >赣州</option>' +'<option value="jiujiang" >九江</option>' +'<option value="shangrao" >上饶</option>';} else if(selectProvince == "hunan") {cityObj.innerHTML ='<option value="changsha" selected="selected">长沙</option>' +'<option value="hy" >衡阳</option>' +'<option value="zz" >株洲</option>' +'<option value="sy" >邵阳</option>';}}
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>图片滚动</title><!--引入css样式文件和js文件--><link rel="stylesheet" type="text/css" href="css/imagescroll.css"/><script src="js/imagescroll.js" type="text/javascript" charset="utf-8"></script></head><!--body的onload()事件--><body onload="imagechange()"><!--承载图片的DIV并试着第一张图片--><div class="div1"><img id="imagescroll" src="img/pic1.jpg"/></div></body></html>
.div1{margin: 50px auto;width: 80%;height:300px;text-align: center;}#imagescroll{width: 534px;height: 300px;}
function imagechange(){//获取承载图片的元素var imagecontrol=document.getElementById("imagescroll");//把所有的图片封装在一个数组中var imageArr =["img/pic1.jpg","img/pic2.jpg","img/pic3.jpg","img/pic4.jpg"];var index=0;//通过setInterval函数每隔2秒改变一下图片,注意该函数的使用方法setInterval(function(){//获取当前图片的编号var i =index;//如果超过最大编号,则回滚到第一张图片if(i>=imageArr.length){index=0;i=0;}//设置背景图片imagecontrol.src=imageArr[i];index=index+1;},2000);}
- Web基础之JavaScript实战
- Web基础之Javascript
- Web之Javascript基础
- Web基础之CSS实战
- Web基础之Javascript 进阶
- Web基础之初识JavaScript
- web程序设计之javascript基础(2)
- Web基础之JavaScript(一)
- Web基础之JavaScript(二)
- Web基础之JavaScript(三)
- 【Web】Javascript基础之原型链
- JavaScript基础实战
- Web基础之Request对象和Response对象项目实战
- Web基础之Servlet+JDBC+JSP项目实战终结篇
- 《JavaScript & jQuery交互式Web前端开发》之JavaScript基础指令
- 【Web基础】JAVAScript基础之闭包详解
- web基础:Javascript
- WEB基础:JavaScript
- SMOTE算法(人工合成数据)
- File类知识点整理
- Update a Dictionary map
- poj 1852 Ants
- 2017.4.17学习
- Web基础之JavaScript实战
- Node.js编程
- 【个人笔记重点,不作为参考】主题:面向对象的程序设计
- 设计模式——单例模式
- 如何在android应用程序中拷贝第三方资产目录下的数据库文件到应用私有目录下
- Decimal integer conversion
- leetcode数组之Valid Sudoku
- 计算机硬件的五大单元以及CPU的种类
- HDU 1260 Tickets(DP OR 记忆化搜索)