获取input节点的正确方法

本文介绍了在HTML中获取input节点的正确方法,通过区分不同的DOM操作方法,如querySelector、querySelectorAll、getElementById、getElementsByClassName、getElementsByTagName和getElementsByName。重点强调了当input元素的name属性为'file'时,应使用getElementsByName方法来获取。

获取 input 节点的正确方法 ()

<form class="file" name="upload">

<input id="file" name="file" />

</form>

 

A document.querySelectorAll('file')[0]
B document.getElementById('file')[0]
C document.getElementByTagName('file')[0]
D document.getElementsByName('file')[0]

答案: D


首先区别以下函数:

    document.querySelector() 返回与指定的选择器组匹配的元素的后代的第一个元素;

    document.querySelectorAll() 返回与指定的选择器组匹配的文档中元素列表.返回的对象是NodeList;

    document.getElementById() 返回一个Element对象,表示id属性与指定字符串匹配的元素;

    document.getElementsByClassName() 返回具有所有给定类名的所欲子元素的类数组对象.返回的对象是HTMLCollection;

    document.getElementsByTagName() 返回具有给定标记名称的元素的HTMLCollection;

    document.getElementsByName() 返回文档中具有给定名称的元素的Nodelist集合.


关于A答案,A中传入的selector为"file"是错误的,会查询不到"file",返回一个空的NodeList集合.

应改为document.querySelectorAll('#file')[0]

关于B答案,document.getElementById()返回的是一个Element对象而不是一个集合.

应改为document.getElementById("file")

 

关于C答案,document.getElementByTagName()返回的是标签名匹配的HTMLCllection集合

应改为document.getElementByTagName("input")[0]

 

而关于D答案,由于input的属性name为"file",document.getElementsByName() 返回文档中具有给定名称的元素的Nodelist集合

所以D为正确答案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值