老师好,请检查4-9并答疑,谢谢。

来源:4-9 编程练习

慕桂英1122475

2023-03-29 17:26:36

老师好:请检查代码,经live sever验证代码1是可以实现效果的。

但是我之前尝试用 var btn = document.getElementsByTagName('input'),来选择input标签赋值给btn的时候就不行了,见代码2。 不知道错了在哪里。


代码1:生效

<!DOCTYPE html>
<html>
  <head lang="en">
    <meta charset="UTF-8" />
    <title>HTML事件</title>

    <script>
      window.onload = function () {
       var btn = document.getElementById("btn");

        btn.onclick = function () {
          btn.style.cssText= "color: red;"
        };
        btn.onmouseleave = function () {
          btn.style.color = "grey"
        };
      };
    </script>
  </head>
  <body>
    <input type="button" value="点击改变按钮字体颜色" id="btn" />
  </body>
</html>

代码2:不生效

<!DOCTYPE html>
<html>
  <head lang="en">
    <meta charset="UTF-8" />
    <title>HTML事件</title>

    <script>
      window.onload = function () {
        var btn = document.getElementsByTagName('input');//为什么通过TagName选择的方式下方改变颜色的函数不生效?
          btn.onclick = function () {
          btn.style.cssText= "color: red;"
        };
        btn.onmouseleave = function () {
          btn.style.color = "grey"
        };
      };
    </script>
  </head>
  <body>
    <input type="button" value="点击改变按钮字体颜色" id="btn" />
  </body>
</html>


写回答

1回答

好帮手慕久久

2023-03-29

同学你好,第一种方式是对的,第二种方式中,getElementsByTagName获取到的元素是以类似数组的形式存在的:

https://img.mukewang.com/climg/6424067e09149ae507220143.jpg

https://img.mukewang.com/climg/6424069209a1d01007030113.jpg

所以需要利用索引,将具体的dom元素获取到才行:

https://img.mukewang.com/climg/642406c30947404609450696.jpg

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程