关于表单元素的name及HTML中的id

本文探讨了在JavaScript中直接使用HTML元素的ID和name属性进行DOM操作的现象。指出使用表单元素的name属性时,应遵循DOM树的父子关系;而直接使用ID虽可行,但非JS规范推荐,未来兼容性未知。

这种在上高级WEB课时,老师为表单元素赋了name值,之后直接在JS中使用该值而不需要使用document.get...来获取了,例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form name="test">
        <input type="text" name="txt" value="这是一个测试">
    </form>

    <script type="text/javascript">
        console.log(document.test);
        console.log(document.test.txt.value);
    </script>
</body>
</html>

结果如下

当第二个测试使用document.txt.value时,会产生错误提示,故使用表单元素的name时应该按DOM树的父子关系进行调用。

另,写随笔前去百度+谷歌了一下,发现并未有人讨论关于这个name的使用,不知道为什么。

 

 

今天测试代码的时候,发现在js中未获取元素id时,可直接使用id来得到元素或对其进行DOM操作,例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
        #test{
            background: #ccc;
        }
        div>div{
            width: 100px;
            height: 100px;
            background: #000;
        }
    </style>
</head>
<body>
    <div id="test">
        <p id="myP">这是原来的信息</p>
    </div>

    <script type="text/javascript">
        myP.innerHTML = "这是新的信息";
        console.log(test.style.background);
console.log(test.style); test.appendChild(document.createElement(
'div')); </script> </body> </html>

这是结果:

 

 

 在打印test的background时,打印了一片空白,我猜测直接使用id时,不能对其进行复杂的使用。

带着疑问前去百度了一番,发现在mrcxt的一篇博客中有一些研究。简单来说就是该方式使用id并非js规范,不推荐使用,将来不知是否还是支持。

 

转载于:https://www.cnblogs.com/breezyNone/p/10506382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值