与或非

开关灯案例:

【相关知识铺垫】

1、元素包含的常用属性:

  • className: 存储的是字符串,代表当前元素的类名
  • id: 存储的是字符串,代表当前元素的id名
  • innerHTML:存储当前元素的所有内容,包含标签
  • innerText:存储当前元素的文本内容
  • style:存贮当前元素的所有行内样式
  • onclick:点击事件属性
  • onmouseover:鼠标滑过事件
  • onmouseout:鼠标离开事件

2、通过id 获取一个元素:document.getElementById(“id名字”)

  1. <div id="box1">box1</div>
  2. <script>
  3. var Obox1=document.getElementById("box1");
  4. console.log(Obox1)
  5. </script>

3、通过标签名去获取一类标签:[context].getElementsByTagName;

  1. var olis=document.getElementsByTagName("li"); // 获取文档中左右的li标签
  2. var box1=document.getElementById("box1");
  3. var lis=box1.getElementsByTagName("li");// 获取box1 下面所有的li元素

4、通过style属性去添加或者修改元素的样式

  1. <div id="box1">box1</div>
  2. <script>
  3. var Obox1=document.getElementById("box1");
  4. Obox1.style.backgroundColor="pink";
  5. </script>

5、给元素添加类名

  1. var Obox1=document.getElementById("box1");
  2. Obox1.className="current";
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin:0;
  11. padding:0;
  12. }
  13. body{
  14. background:darkturquoise;
  15. }
  16. #main{
  17. width:300px;
  18. border:1px solid green;
  19. margin:0 auto;
  20. }
  21. #button{
  22. width:100%;
  23. height:50px;
  24. background:lightblue;
  25. text-align: center;
  26. }
  27. #imgbox{
  28. display:block;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="main">
  34. <button id="button">隐藏</button>
  35. <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="">
  36. </div>
  37. </body>
  38. </html>
  39. <script>
  40. /*
  41. 默认:图片是显示的,按钮的内容 隐藏
  42. 点击按钮的时候,如果按钮原来是隐藏,
  43. + 按钮内容变成“显示”
  44. + 图片消失
  45. 点击按钮的时候,如果按钮是显示,
  46. + 按钮内容变成“隐藏”
  47. + 图片显示
  48. */
  49. var button=document.getElementById("button");
  50. var oimg=document.getElementById("imgbox");
  51. button.onclick=function(){
  52. var value=button.innerText;
  53. if(value=="隐藏"){
  54. button.innerHTML="显示";
  55. oimg.style.display="none";
  56. }else{
  57. button.innerHTML="隐藏";
  58. oimg.style.display="block";
  59. }
  60. }
  61. </script>

案例之隔行变色

css 实现

如果每隔三行实现一个变色,就是.main>li:nth-child(3n+1) .main>li:nth-child(3n+2) .main>li:nth-child(3n)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin:0;
  11. padding:0;
  12. }
  13. ul,ol{
  14. list-style: none;
  15. }
  16. body{
  17. background:lightseagreen;
  18. }
  19. .main{
  20. width:500px;
  21. /* border:1px solid #000; */
  22. margin:50px auto;
  23. color:#666;
  24. }
  25. .main>li{
  26. height:40px;
  27. line-height:40px;
  28. text-indent: 20px;
  29. }
  30. .main>li:nth-child(even){
  31. background:yellow;
  32. }
  33. .main>li:nth-child(odd){
  34. background:lightgreen;
  35. }
  36. .main>li:hover{
  37. background:lightblue;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <ul class="main">
  43. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  44. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  45. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  46. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  47. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  48. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  49. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  50. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  51. </ul>
  52. </body>
  53. </html>

js实现奇偶行变色
分析:隔行变色的原理:
操作的元素:li ,
让 处于奇数的li 变一个颜色1
让 处于偶数行的li 变一个颜色2

方法一: 通过style行内属性来改变

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. ul,
  14. ol {
  15. list-style: none;
  16. }
  17. body {
  18. background: lightseagreen;
  19. }
  20. #main {
  21. width: 500px;
  22. /* border:1px solid #000; */
  23. margin: 50px auto;
  24. color: #666;
  25. }
  26. #main>li {
  27. height: 40px;
  28. line-height: 40px;
  29. text-indent: 20px;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <ul id="main">
  35. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  36. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  37. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  38. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  39. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  40. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  41. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  42. <li>走在前沿的专家级课程:珠峰微信小程序实战开发课程</li>
  43. </ul>
  44. <script>
  45. var omain = document.getElementById("main");
  46. console.log(omain)
  47. var lis = omain.getElementsByTagName("li");
  48. for (var i = 0; i < lis.length; i++) {
  49. if (i % 2 != 0) {
  50. lis[i].style.backgroundColor = "yellow";
  51. } else {
  52. lis[i].style.backgroundColor = "pink";
  53. }
  54. }
  55. </script>
  56. </body>
  57. </html>

方法二:通过添加类名

  1. <style>
  2. .color1{
  3. background:lightsalmon;
  4. }
  5. .color2{
  6. background:yellow;
  7. }
  8. </style>
  9. for(var i=0;i<lis.length;i++){
  10. if(i%2!=0){
  11. lis[i].className="color1";
  12. }else{
  13. lis[i].className="color2";
  14. }
  15. }

全部用js实现,隔行变色,并且鼠标滑上去的时候,改变颜色,鼠标离开之后,还原原有的颜色

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin:0;
  11. padding:0;
  12. }
  13. li{
  14. height:30px;
  15. line-height: 30px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <ul class="main" id="main" style="background:blue">
  21. <li>1</li>
  22. <li>2</li>
  23. <li>3</li>
  24. <li>4</li>
  25. <li>5</li>
  26. </ul>
  27. </body>
  28. </html>
  29. <script>
  30. /*
  31. 原理:获取到所有的li元素,如果这个li是偶数我们就让它是一个颜色,如果不是偶数就是另一个颜色
  32. */
  33. var omain=document.getElementById("main");
  34. var lis=omain.getElementsByTagName("li");
  35. for(var i=0;i<lis.length;i++){
  36. if(i%2==0){
  37. lis[i].style.background="blue";
  38. }else{
  39. lis[i].style.background="yellow";
  40. }
  41. // 鼠标滑上li的时候,改变那个li的背景颜色
  42. lis[i].onmouseover=function(){
  43. // 把原有的颜色绑定上去
  44. this.bgColor=this.style.backgroundColor;
  45. this.style.background="lightpink";
  46. }
  47. // 鼠标离开的时候,恢复原有的颜色
  48. lis[i].onmouseout=function(){
  49. this.style.background=this.bgColor;
  50. }
  51. }
  52. </script>

阿里引发的一道血案面试题

  1. let a={
  2. n:1,
  3. }
  4. let b=a;
  5. a.x=a={
  6. n:2
  7. }
  8. console.log(a.x);
  9. console.log(b)

连等赋值:是按照从右向左

  1. var a=b=20;
  2. // 第一步:先创建一个值
  3. // 第二步:b=20
  4. // 第三步:var a=20;
  1. undefined
  2. { n: 1, x: { n: 2 } }

微信图片_20220501192838.jpg