1.需要:奇数行和偶数行颜色不同,鼠标经过某个li的时候背景颜色需要改变,当鼠标离开某个li的时候,颜色需要回到原来状态

    2.首先我们开始让奇数和偶数行颜色改变时,我第一反应是for循环来做,后来发现需要循环2此,比较麻烦,下面是判断li的奇偶性来做,方便很多,然后将简单的if语句用三元表达式来简化很nice

    这个时候我们就引入了自定义属性,讲原来的值(颜色)存到一个变量中,然后我们自己在每个li中定义一个属性来存储这个变量
    等到鼠标经过后,我们需要用到原来的属性的时候,再讲这个方法拿来用

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Document</title>
    8. <style>
    9. * {
    10. margin: 0;
    11. padding: 0;
    12. }
    13. ul {
    14. list-style: none;
    15. width: 500px;
    16. margin: 30px auto;
    17. }
    18. li {
    19. line-height: 35px;
    20. border-bottom: 1px solid red;
    21. }
    22. </style>
    23. </head>
    24. <body>
    25. <ul class="box">
    26. <li>0</li>
    27. <li>1</li>
    28. <li>2</li>
    29. <li>3</li>
    30. <li>4</li>
    31. </ul>
    32. <script>
    33. // 自定义属性,前期把一些值存储到元素属性上,后期需要用到的时候直接从元素上获取即可
    34. var lis = document.getElementsByTagName('li')
    35. for (var i = 0; i < lis.length; i++) {
    36. var bg = i % 2 === 0 ? 'red' : 'pink';
    37. lis[i].style.backgroundColor = i % 2 === 0 ? 'red' : 'pink';
    38. lis[i].myOriginBg = bg
    39. lis[i].onmouseover = function() {
    40. this.style.backgroundColor = ' blue'
    41. }
    42. lis[i].onmouseout = function() {
    43. this.style.backgroundColor = this.myOriginBg
    44. }
    45. }
    46. </script>
    47. </body>
    48. </html>

    image.png