getElementsByTagName取出的伪数组里面的特殊属性,为什么?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
        window.onload = function() {
            var inputs = document.getElementsByTagName('input');
            console.log(inputs);
        }
    </script>
</head>
<body>
    <input type="radio" name="aaa" value="male">男
    <input type="radio" name="aaa" value="famale">女
</body>
</html>


结果:

(2) [input, input, aaa: input]
图片描述

阅读 2.2k
2 个回答

没太看懂你想问什么。
推荐你看看MDN,希望对你有帮助。
MDN getElementsByTagName
返回一个包括所有给定标签名称的元素的HTML集合HTMLCollection。 整个文件结构都会被搜索,包括根节点。返回的 HTML集合是动态的, 意味着它可以自动更新自己来保持和 DOM 树的同步而不用再次调用 document.getElementsByTagName() 。

简单点理解,你拿到的inputs是一个类数组,你可以通过inputs[0]拿到第一个input
同时,如果DOM中的input是有name属性的(比如这里的第一个inputnameaaa),你也可以通过inputs.aaa来拿到元素,所以你会看到那个有点奇怪的属性。
至于为啥是这样的...我也没找到文档写...看到你这个问题我才知道会这样...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题