Javascript知识【案例:表格隔行换色】

朴灿烈づ我的快乐病毒、 2023-10-01 23:22 141阅读 0赞

目录

1,案例1:表格隔行换色

2,案例2:鼠标移入粉色,移出原色【基础+】

2.1:需求说明

2.2:前置知识:鼠标移入移出事件

2.3:前置拓展知识:this关键字

2.4:分析&实现


1,案例1:表格隔行换色

96da4295928c427baffbbb429fdac21a.png

要达到以上效果,仅需要将第二行,第四行tr标签获取到,更改其样式属性即可

分析:

关键点:

  1. 获取到指定的tr (遍历时跳过0索引,让偶数索引的元素进行变色)

document.getElementsByTagName(“tr”);

38f3ac08737f4d1b89c3ae80e943be63.png

2.修改tr对象 className

元素对象.className=”blue”;

步骤:

  • 页面加载完成时,编写要进行的操作
  • 隔行换色操作

//1、获取所有的tr

//2、遍历tr数组,跳过0索引,只需要偶数索引,让偶数索引改变className

代码实现:







<script>
   //一、页面加载完成时,编写要进行的操作
   window.onload = function (ev) {
      //二、隔行换色操作
      //1、获取所有的tr
      var trArr = document.getElementsByTagName(“tr”);
      //2、遍历tr数组,跳过0索引,只需要偶数索引,让偶数索引改变className
      for (var i = 1; i <trArr.length ; i++) {
         if(i%2==0){
            trArr[i].className= “blue”;
         }
      }
   }

</script>

1,获取到指定的tr(遍历时跳过0索引,让偶数索引的元素进行变色)

document.getElementsByTagName(“tr”)

2dfbecd1581a4646b43a9b19fc091fdc.png

2,修改tr对象className 元素对象.className=”blue”

2,案例2:鼠标移入粉色,移出原色【基础+】

2.1:需求说明

2207692c26964e179d9de28b723428e3.png

4802cc8e5da04a688f366ff1cb5bf117.png

分析:

关键点:

  1. 鼠标移入、移出事件

onmouseover

onmouseout

  1. 自定义数据保存

2.2:前置知识:鼠标移入移出事件

目标:掌握鼠标移入、移出事件基本绑定方式

掌握事件DOM绑定方式

路径:

  1. 鼠标移入、移出事件
  2. DOM方式绑定事件

讲解:







<!DOCTYPE html>
<html lang=”en”>
<head>
    <meta charset=”UTF-8”>
    <title>Title</title>
    <script>
        /
            onmouseover  移入
            onmouseout   移出
         /

        function run1() {
            var d1 = document.getElementById(“d1”);
            d1.style = “width:100px;height: 100px;background-color: blue;”;
        }
        function run2() {
            var d1 = document.getElementById(“d1”);
            d1.style = “width:100px;height: 100px;background-color: pink;”;
        }
    </script>
</head>
<body>
<!—
    移入:蓝色
    移出:改回粉色
    —>
    <div id=”d1” style=”width:100px;height: 100px;background-color: pink;onmouseover=”run1()onmouseout=”run2()></div>
</body>
</html>

小结:

onmouseover:鼠标移入再触发事件

onmouseout:鼠标移出再触发事件

DOM绑定方式:







<!DOCTYPE html>
<html lang=”en”>
<head>
    <meta charset=”UTF-8”>
    <title>Title</title>
    <script>

        //需求:在页面加载完成时,为d1元素绑定鼠标移入移出事件
        window.onload = function (ev) {
            var d1 = document.getElementById(“d1”);
            /d1.onmouseover = function (ev1) {
                run1();
            };/

            d1.onmouseover = run1;
            d1.onmouseout = run2;
        }

        function run1() {
            var d1 = document.getElementById(“d1”);
            d1.style = “width:100px;height: 100px;background-color: blue;”;
        }
        function run2() {
            var d1 = document.getElementById(“d1”);
            d1.style = “width:100px;height: 100px;background-color: pink;”;
        }
    </script>
</head>
<body>
<!—
    移入:蓝色
    移出:改回粉色
    —>
    <div id=”d1” style=”width:100px;height: 100px;background-color: pink;></div>
</body>
</html>

小结:

DOM绑定方式,不修改HTML前提下,对HTML元素进行页面加载完成时,进行事件绑定。

绑定格式:

  1. 元素.事件 = function(){};
  2. 元素.事件 = 方法名;

2.3:前置拓展知识:this关键字

目标:1、掌握this关键字用法

2、掌握this关键字存储自定义数据

路径:

  1. this关键字常见使用
  2. this关键字在事件中的应用
  3. this关键字如何存储自定义数据

讲解:

this关键字常见使用

this当前对象。

6247337117a54883ba2128ef72e1fc02.png

this关键字在事件中的应用:

3fb169955e184278b610a3022ed2b70c.png

this关键字如何存储自定义数据

对象[“key”]=”value”;

this[“key”]=”value”;







<!DOCTYPE html>
<html lang=”en”>
<head>
    <meta charset=”UTF-8”>
    <title>Title</title>
    <script>
        window.onload = function (ev) {
            var t1 = document.getElementById(“t1”);
            t1[“username”] = “金雪”;

            t1.onclick = function (ev1) {
                alert(this[“username”]);
            };
        }
    </script>
</head>
<body>
    <!—
        点击input框,展示自定义属性数据(页面加载完成时进行保存)
    —>
    <input type=”text” value=”xxxx” id=”t1”/>
</body>
</html>

小结:

写在HTML属性中,可以在DOM绑定的事件中。

this[“key”]=”value”;

2.4:分析&实现

  1. 步骤:

1、页面加载完成时,获取所有的tr

2、遍历所有tr,除了0索引。

3、遍历中:索引奇数保存white样式,索引偶数保存blue样式

4、遍历中:每遍历一个tr,绑定鼠标移入和移出事件

5、鼠标移入事件:先保存之前的class值,再赋予新的class值:pink

6、鼠标移出事件:获取原来的class值,赋予class

  1. 代码实现:






<style>
   .white{
      background-color: white;
   }
   .blue{
      background-color: lightskyblue;
   }
   .pink{
      background-color: pink;
   }
</style>
<script>
   //1、页面加载完成时,获取所有的tr
   window.onload = function (ev) {
      var trArr = document.getElementsByTagName(“tr”);
      //2、遍历所有tr,除了0索引。
      for (var i = 1; i <=trArr.length ; i++) {
         var tr = trArr[i];
         //3、遍历中:索引奇数保存white样式,索引偶数保存blue样式
         if(i%2!=0){
            tr.className = “white”;
         }else{
            tr.className = “blue”;
         }
         //4、遍历中:每遍历一个tr,绑定鼠标移入和移出事件
         //5、鼠标移入事件:先保存之前的class值,再赋予新的class值:pink
         tr.onmouseover = function (ev1) {
            this[“temp”] = this.className;
            this.className = “pink”;
         };
         //6、鼠标移出事件:获取原来的class值,赋予class
         tr.onmouseout = function (ev1) {
            this.className = this[“temp”];
         };
      }
   }
</script>

672455727be04d55a128d03f80c3f741.png

dom方式绑定事件时,可以进行批量绑定

发表评论

表情:
评论列表 (有 0 条评论,141人围观)

还没有评论,来说两句吧...

相关阅读