与或非
开关灯案例:
【相关知识铺垫】
1、元素包含的常用属性:
- className: 存储的是字符串,代表当前元素的类名
- id: 存储的是字符串,代表当前元素的id名
- innerHTML:存储当前元素的所有内容,包含标签
- innerText:存储当前元素的文本内容
- style:存贮当前元素的所有行内样式
- onclick:点击事件属性
- onmouseover:鼠标滑过事件
- onmouseout:鼠标离开事件
2、通过id 获取一个元素:document.getElementById(“id名字”)
<div id="box1">box1</div><script>var Obox1=document.getElementById("box1");console.log(Obox1)</script>
3、通过标签名去获取一类标签:[context].getElementsByTagName;
var olis=document.getElementsByTagName("li"); // 获取文档中左右的li标签var box1=document.getElementById("box1");var lis=box1.getElementsByTagName("li");// 获取box1 下面所有的li元素
4、通过style属性去添加或者修改元素的样式
<div id="box1">box1</div><script>var Obox1=document.getElementById("box1");Obox1.style.backgroundColor="pink";</script>
5、给元素添加类名
var Obox1=document.getElementById("box1");Obox1.className="current";
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin:0;padding:0;}body{background:darkturquoise;}#main{width:300px;border:1px solid green;margin:0 auto;}#button{width:100%;height:50px;background:lightblue;text-align: center;}#imgbox{display:block;}</style></head><body><div id="main"><button id="button">隐藏</button><img id="imgbox" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1577444372587&di=1684c649c2b1d4b1fdcd5910968c508b&imgtype=0&src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fpcdlc%2F1709%2F16%2Fc79%2F59427944_1505500668556.gif" alt=""></div></body></html><script>/*默认:图片是显示的,按钮的内容 隐藏点击按钮的时候,如果按钮原来是隐藏,+ 按钮内容变成“显示”+ 图片消失点击按钮的时候,如果按钮是显示,+ 按钮内容变成“隐藏”+ 图片显示*/var button=document.getElementById("button");var oimg=document.getElementById("imgbox");button.onclick=function(){var value=button.innerText;if(value=="隐藏"){button.innerHTML="显示";oimg.style.display="none";}else{button.innerHTML="隐藏";oimg.style.display="block";}}</script>
案例之隔行变色
css 实现
如果每隔三行实现一个变色,就是.main>li:nth-child(3n+1) .main>li:nth-child(3n+2) .main>li:nth-child(3n)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin:0;padding:0;}ul,ol{list-style: none;}body{background:lightseagreen;}.main{width:500px;/* border:1px solid #000; */margin:50px auto;color:#666;}.main>li{height:40px;line-height:40px;text-indent: 20px;}.main>li:nth-child(even){background:yellow;}.main>li:nth-child(odd){background:lightgreen;}.main>li:hover{background:lightblue;}</style></head><body><ul class="main"><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li></ul></body></html>
js实现奇偶行变色
分析:隔行变色的原理:
操作的元素:li ,
让 处于奇数的li 变一个颜色1
让 处于偶数行的li 变一个颜色2
方法一: 通过style行内属性来改变
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>* {margin: 0;padding: 0;}ul,ol {list-style: none;}body {background: lightseagreen;}#main {width: 500px;/* border:1px solid #000; */margin: 50px auto;color: #666;}#main>li {height: 40px;line-height: 40px;text-indent: 20px;}</style></head><body><ul id="main"><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li><li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li></ul><script>var omain = document.getElementById("main");console.log(omain)var lis = omain.getElementsByTagName("li");for (var i = 0; i < lis.length; i++) {if (i % 2 != 0) {lis[i].style.backgroundColor = "yellow";} else {lis[i].style.backgroundColor = "pink";}}</script></body></html>
方法二:通过添加类名
<style>.color1{background:lightsalmon;}.color2{background:yellow;}</style>for(var i=0;i<lis.length;i++){if(i%2!=0){lis[i].className="color1";}else{lis[i].className="color2";}}
全部用js实现,隔行变色,并且鼠标滑上去的时候,改变颜色,鼠标离开之后,还原原有的颜色
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin:0;padding:0;}li{height:30px;line-height: 30px;}</style></head><body><ul class="main" id="main" style="background:blue"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul></body></html><script>/*原理:获取到所有的li元素,如果这个li是偶数我们就让它是一个颜色,如果不是偶数就是另一个颜色*/var omain=document.getElementById("main");var lis=omain.getElementsByTagName("li");for(var i=0;i<lis.length;i++){if(i%2==0){lis[i].style.background="blue";}else{lis[i].style.background="yellow";}// 鼠标滑上li的时候,改变那个li的背景颜色lis[i].onmouseover=function(){// 把原有的颜色绑定上去this.bgColor=this.style.backgroundColor;this.style.background="lightpink";}// 鼠标离开的时候,恢复原有的颜色lis[i].onmouseout=function(){this.style.background=this.bgColor;}}</script>
阿里引发的一道血案面试题
let a={n:1,}let b=a;a.x=a={n:2}console.log(a.x);console.log(b)
连等赋值:是按照从右向左
var a=b=20;// 第一步:先创建一个值// 第二步:b=20// 第三步:var a=20;
undefined{ n: 1, x: { n: 2 } }

