一、javaScript

JS开发: 是一门脚本语言,由浏览器来解释执行,不需要经过编译

JS声明变量: var 变量的名字;

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

JS声明函数: function 函数的名称(参数的名字){}

JS开发的步骤:


1. 确定事件
2. 事件要触发函数,所以我们是要声明函数
3. 函数里面通常是去做一些交互才操作, 弹框, 修改页面内容,动态去添加一些东西

1.自动轮播图片

1.1切换图片

步骤:

1.事件:点击事件onclick
2.事件要触发函数:changemg()
3.在函数中

代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
function changeImg(){
//alert("要切换了")
var img=document.getElementById("img1");
img.src="../img/002.jpg"
}
</script>
</head>
<body>
<input type="button" value="点击切换图片" onclick="changeImg()"/><br />
<img src="../img/001.jpg" id="img1"/>
</body>
</html>

1.2定时器

setInterval("函数",时间);//会一直运行
setTimeout("函数",时间);//只运行一次

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
//window对象是一个最底层的对象
//window.setInterval("alert('123')",2000);
function test(){
console.log("setInterval调用了")
}
var timerID;
function startTimer(){
timerID=setInterval("test()",2000);
}
function stopTimer(){
//关闭定时器的方法clearInterval()
clearInterval(timerID);
}
</script>
</head>
<body>
<input type="button" value="开启定时器" onclick="startTimer()"/><br />
<input type="button" value="关闭定时器" onclick="stopTimer()"/><br />
</body>
</html>

1.3图片自动播放

步骤:

1.确定事件:文档加载完成的事件onload
2.事件的触发:init()
3.函数里面要做的一些事情:(通常会操作元素,提供交互)
1.开启定时器:执行切换图片的函数changeImg()
4.changeImg()
1.获得想要切换图片的那个元素

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
      <script>
      var index=0;
      function changeImg(){
      //获得想要切换图片的那个元素
      var img=document.getElementById("img1");
      //计算出当前要切换到第几张图片
      var curIndex=index%3+1;//0,1,2
      img.src="../img/00"+curIndex+".jpg";//1,2,3
      index=index+1;
      }
      function init(){
      setInterval("changeImg()",2000);
      }
      </script>
</head>
<body onload="init()">
<img src="../img/001.jpg" id="img1"/>
</body>
</html>

2.网站定时弹出广告

2.1显示和隐藏广告

要点分析:

- 定时器
- setInterval : 每隔多少毫秒执行一次函数
- setTimeout: 多少毫秒之后执行一次函数
- clearInterval:清除定时器
- clearTimeout:清除定时器
- 显示广告 img.style.display = "block"
- 隐藏广告 img.style.display = "none"

代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
function showImg(){
var img=document.getElementById("img1");
//图片显示display="block"
img.style.display="block";
}
function hideImg(){
var img=document.getElementById("img1");
//图片隐藏display="none
img.style.display="none";
}
</script>
</head>
<body>
<input type="button" value="显示" onclick="showImg()"/>
<input type="button" value="隐藏" onclick="hideImg()"/><br />
<img src="../img/001.jpg" id="img1" />
</body>
</html>

2.2定时弹出广告

步骤:

1.确定事件:页面加载完成事件onload
2.事件要触发的函数:init()
3.init函数里面做一件事:
1.启动一个定时器:setTimeout()
2.显示一个广告:
1.再去开启一个定时5秒后,关闭广告

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
      <script>
      //开启广告的函数
      function showImg(){
      //首先要获取要操作的img
      var img=document.getElementById("img1");
      //显示广告
      img.style.display="block";
      //在开启定时器,关闭广告
      setTimeout("hideImg()",3000);
      }
      //关闭广告的函数
      function hideImg(){
      //首先要获取要操作的img
      var img=document.getElementById("img1");
      //隐藏广告
      img.style.display="none";
      }
      function init(){
      setTimeout("showImg()",3000);
      }
      </script>
</head>
<body onload="init()">
<img src="../img/003.jpg" id="img1" />
</body>
</html>

3.表单校验

要点分析:


onfocus 事件: 获得焦点事件
onblur : 失去焦点
onkeyup : 按键抬起事件

JS开发步骤:


1. 确定事件
2. 事件要触发函数: 定义函数
3. 函数通常都要去做一些交互: 点击, 修改图片,
动态修改innerHTML属性... innerTEXT

步骤:

确认事件
校验用户名
1.当鼠标移动到输入框中的时候,给用户一个提示
事件:焦点事件onfocus
触发函数:
函数里面要做的一些事情
span给用户提示信息
2.当用户鼠标移开后,校验一下用户输入
事件:失去焦点 onblur
触发函数:
函数要做的事情:
校验用户输入
获取操作的元素
得到用户输入的值
3.当用户按键输入抬起的时候,校验一下用户输入
事件:onkeyup

引入外部js:


<script type="text/javascript" src="../js/regutils.js"></script>

代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/regutils.js"></script>
<script>
/*
* 1.确定事件:onfocus 获得焦点
* 2.事件要驱动函数
* 3.函数要干一些事情:修改span的内容
*/
function showTips(spqnID,messages){
//首先要获得要操作的元素span
//var span=document.getElementById("span_username");
var span=document.getElementById(spqnID);
span.innerHTML=messages;
}

/*
* 校验用户名
* 1.事件:onblur 失去焦点 onkeyup 按键弹抬起
* 2.函数:checkUsername()
* 3.函数去显示校验结果
*/
function checkUsername(){
//获取用户输入的账户
var uNmae=document.getElementById("username").value;
//对输入的内容进行校验
//获得要操作的元素span
var span=document.getElementById("span_username");
if (uNmae.length<6) {
span.innerHTML="<font color='red' size='2'>用户名小于6位</font>";
return false;
} else{
span.innerHTML="<font color='lawngreen' size='2'>正确</font>";
return true;
}
}
/*
* 校验密码
*/
function checkPwd(){
//获取用户输入的密码
var uPwd=document.getElementById("password").value;
//对输入内容进行校验
//获得要操作的元素span
var span=document.getElementById("span_password");
if (uPwd.length<6) {
span.innerHTML="<font color='red' size='2'>密码小于6位</font>";
return false;
} else{
span.innerHTML="<font color='lawngreen' size='2'>可用</font>";
return true;
}
}
/*
* 校验确认密码
*/
function checkRePwd(){
//获取密码输入
var uPwd=document.getElementById("password").value;
//获取确认密码输入
var uRePwd=document.getElementById("repassword").value;
//对输入的内容进行校验
//获取要操作的元素span
var span=document.getElementById("span_repassword");
if (uRePwd==uPwd) {
span.innerHTML="<font color='lawngreen' size='2'>密码正确</font>";
return true;
} else{
span.innerHTML="<font color='lawngreen' size='2'>两次输入不相同</font>";
return false;
}
}
/*
*校验邮箱
*/
function checkMail(){
//获取用户输入的邮箱
var uEmail=document.getElementById("email").value;
var flag=checkEmail(uEmail);
//对输入的内容进行校验
//获取操作的元素span
var span=document.getElementById("span_email");
if (flag) {
span.innerHTML="<font color='lawngreen' size='2'>格式正确</font>";
return true;
} else{
span.innerHTML="<font color='lawngreen' size='2'>格式错误</font>";
return false;
}
}
/*
* 校验按钮
*/
function checkSubmit(){
var flag=checkUsername()&&checkPwd()&&checkRePwd()&&checkMail();
return flag;
}
</script>
</head>
<body>
<form action="../index.html" onsubmit="return checkSubmit()">
用户名:<input type="text" id="username" onfocus="showTips('span_username','用户名长度不小于6位')" onblur="checkUsername()" onkeyup="checkUsername()"/><span id="span_username"></span><br />
密码:<input type="password" id="password" onfocus="showTips('span_password','密码长度不小于6位')" onblur="checkPwd()" onkeyup="checkPwd()"/><span id="span_password"></span><br />
确认密码:<input type="password" id="repassword" onfocus="showTips('span_repassword','两次密码必须相同')" onblur="checkRePwd()" onkeyup="checkRePwd()"/><span id="span_repassword"></span><br />
邮箱:<input type="text" id="email" onfocus="showTips('span_email','输入正确的格式')" onblur="checkMail()" onkeyup="checkMail()"/><span id="span_email"></span><br />
手机号:<input type="text" id="text" /><br />
<input type="submit" value="提交" />
</form>
</body>

</html>

4.表格隔行换色

步骤:

表格隔行换色
1.确定要触发的事件:onload
2.要触发事件的函数:init()
3.函数要干的事:
1.操作表格中的每一行:
rows[]返回表格中所有行的一个数组
2.动态改变每一行的背景颜色
复选框全选全不选
1.确定事件:onclick 单击事件
2.事件触发函数:checkAll()
3.函数要去做一些事情:
获得当前第一个checkbox的状态
获得所有分类项的checkbox
修改每一个checkbox的状态

代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

      <script>
      /*
      * 表格隔行换色
      */
      function init(){
      //得到表格
      var tab=document.getElementById("tab");
      //得到表格中的每一行
      var rows=tab.rows;
      //遍历所有的行,根据奇数偶数修改
      for(var i=1;i<rows.length;i++){
      var row=rows[i];//切记这里的row不能定义成rows,否则会冲突
      if (i%2==0){
      row.bgColor="red";
      } else{
      row.bgColor="yellow";
      }
      }
      }
      /*
      * 复选框全选全不选
      */
      function checkAll(){
      //获得当前第一个checkbox的状态
      var check1=document.getElementById("check1");
      //得到当前checkbox状态
      var checked=check1.checked;
      //获得所有分类项的checkbox
      var checks=document.getElementsByName("checkone");
      //alert(checks.length);
      //修改所有checkbox的状态
      for(var i=0;i<checks.length;i++){
      //修改每一个checkbox的状态
      var checkone=checks[i];
      checkone.checked=checked;
    }
      }
      </script>
</head>
<body onload="init()">
<table border="1" id="tab">
<tr>
              <th>
          <input type="checkbox" id="check1" onclick="checkAll()"/>
          </th>
          <th>分类ID</th><th>分类名</th><th>分类商品</th><th>分类描述</th><th>操作</th>
          <!--
              <td>
<input type="checkbox" id="check1" onclick="checkAll()"/>
</td>
<td>分类ID</td>
<td>分类名</td>
<td>分类商品</td>
<td>分类描述</td>
<td>操作</td>
              -->
</tr>
          <tr>
<td>
<input type="checkbox" name="checkone"/>
</td>
<td>1</td>
<td>床上用品</td>
<td>被套,枕头,四件套</td>
<td>秋冬必备</td>
<td>
<a href="">修改</a>|<a href="">删除</a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkone"/>
</td>
<td>2</td>
<td>手机数码</td>
<td>华为,apple,笔记本</td>
<td>更新换代</td>
<td>
<a href="">修改</a>|<a href="">删除</a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkone"/>
</td>
<td>3</td>
<td>鞋靴箱包</td>
<td>耐克,乔丹,李宁</td>
<td>舒适享受</td>
<td>
<a href="">修改</a>|<a href="">删除</a>
</td>
</tr>
</table>
</body>
</html>

5.省市联动

5.1DOM操作

什么是DOM: Document Object Model : 管理我们的文档 增删改查规则

HTML中的DOM操作:


一些常用的 HTML DOM 方法:
getElementById(id) - 获取带有指定 id 的节点(元素)
appendChild(node) - 插入新的子节点(元素)
removeChild(node) - 删除子节点(元素)

一些常用的 HTML DOM 属性:
innerHTML - 节点(元素)的文本值
parentNode - 节点(元素)的父节点
childNodes - 节点(元素)的子节点
attributes - 节点(元素)的属性节点


查找节点:
getElementById() 返回带有指定 ID 的元素。
getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。

增加节点:
createAttribute() 创建属性节点。
createElement() 创建元素节点。
createTextNode() 创建文本节点。
insertBefore() 在指定的子节点前面插入新的子节点。
appendChild() 把新的子节点添加到指定节点。

删除节点:
removeChild() 删除子节点。
replaceChild() 替换子节点。

修改节点:
setAttribute() 修改属性
setAttributeNode() 修改属性节点

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
/*
* 动态添加
* 1.确定事件:点击事件 onclick
*/
function checkBut(){
var div=document.getElementById("div1");
//创建元素节点
var p=document.createElement("p");
//创建文本节点
var textNode=document.createTextNode("文本内容");
//将p和文本关联起来
p.appendChild(textNode);
//将p添加到目标div中
div.appendChild(p);
}
</script>
</head>
<body>
<input type="button" value="点我添加" onclick="checkBut()"/>
<!--会动态的往这个div中添加节点-->
      <div id="div1"></div>
</body>
</html>

5.2省市联动

步骤:

省市联动:
1.确定事件:onchange
  2.要触发的函数:selectProvince()
  3.函数要做的事:
      得到当前操作元素
      得到当前选择的是哪一个省份
      从数组中取出对应的城市信息
      动态创建城市元素节点
      添加到城市select中

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
/*
* 准备工作:准备数据
*/
var provinces=[
["兰州市","金昌市","武威市","天水市"],
["南京市","扬州市","镇江市","苏州市"],
["湖州市","宁波市","杭州市","台州市"]
];
/*
*省市联动
*/
function selectProvince(){
var province=document.getElementById("province");
//得到当前选中的是哪个省
//alert(province.value);
var value=province.value;
//从数组中取出对应的城市信息
var cities=provinces[value];

var citySelect=document.getElementById("city");
//清空select中的option
citySelect.options.length=0;
for (var i=0;i<provinces.length;i++) {
var cityText=cities[i];
//动态创建城市元素节点<option></option>

//创建option节点
var option1=document.createElement("option");
//创建城市文本节点
var textNode=document.createTextNode(cityText);
//将option节点和文本内容关联起来
option1.appendChild(textNode);//<option></option>
//添加到城市select中
citySelect.appendChild(option1);
}
}
</script>
</head>
<body>
<!--选择省份-->
<select id="province" onchange="selectProvince()">
<option value="-1">--请选择--</option>
<option value="0">甘肃省</option>
<option value="1">江苏省</option>
<option value="2">浙江省</option>
</select>
<!--选择市-->
<select id="city"></select>
</body>
</html>

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄