获取标签名疑问

来源:4-11 编程练习

日拱一卒_

2021-11-13 16:34:55

问题描述:

https://img.mukewang.com/climg/618f7898094d70bb07060095.jpg

相关代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>随堂练习</title>
        <style type="text/css">
            .red{
                border:1px solid red;
            }
        </style>
    </head>

    <body>
        姓名:<input type="text" id="input"> <span></span>

        <script>
            // 老师请问,这里在获取标签名的时候,为什么需要写[0],这里不理解
            var input = document.getElementsByTagName('input')[0];
            var span = document.getElementsByTagName('span')[0];
            input.onfocus = function() {
                if(this.value == ''){
                    span.innerHTML = '请输入您的姓名';
                }
            }
            input.onblur = function() {
                if(this.value == ''){
                    span.innerHTML = '用户名不能为空';
                    this.className = 'red';
                }
            }
        </script>
    </body>
</html>


写回答

1回答

好帮手慕久久

2021-11-13

同学你好,解答如下:

getElementsByTagName这个方法比较特殊,它获取的结果是类似数组的形式(把真正的dom元素,放到了类数组中):

https://img.mukewang.com/climg/618f7e310965c96d08670067.jpg

https://img.mukewang.com/climg/618f7e6609af445208670185.jpg

因此想要获取真正的dom元素,则要使用索引的形式。

同学的代码中,只有一个input,对应索引是0,因此要写成document.getElementsByTagName('input')[0]。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程