询问一个document传递的问题,今天看别人写代码产生的疑问

下面代码成立,但是当 form name改写成form id或者使用div id,div name时均无法达到效果,麻烦懂的告知下为什么

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function p(){
            document.a.b.disabled=true;
        }
    </script>
</head>
<body>
    <form name="a">
        <button name="b" onclick="p()">点击测试</button>
    </form>
</body>
</html>

对于name属性来说,只有某些类型的html元素具有类似的方法,比如:form,img,iframe,applet,embed,object等。在这些元素中可以通过全局变量或者document的属性来访问特定name属性的元素;如果相同name属性的有多个元素,则返回一个NodeList的类似只读数组的对象.

https://www.jb51.net/article/65099.htm

规定就是这样 document.a.b 就是 只认form元素和表单元素的name的,规定如此而已.
要通过id访问元素应该用

    <script>
        function p(){
            document.getElementById("b").disabled=true;
            //或者document.querySelector("#a #b").disabled=true;
        }
    </script>
    <form id="a">
        <button id="b" onclick="p()">点击测试</button>
    </form>

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632