首页 > 试题广场 >

下面代码获取 input 节点的正确方法是( )

[单选题]
下面代码获取 input 节点的正确方法是( )
<form class="file" name="upload">
<input id="file" name="file" class="file"/>
</form>
  • document.querySelectorAll('file')[0]
  • document.getElementById('file')[0]
  • document.getElementByTagName('file')[0]
  • document.getElementById('file')
Ped头像 Ped
D不是获取form节点吗?
发表于 2019-03-24 23:39:24 回复(1)
D不是对的吗,为什么说是错的...
查找出class_list=[form, input];
class_list[1] = input;
发表于 2019-09-21 22:15:12 回复(0)
应该是为了测试我们会不会空着这道题
编辑于 2019-08-22 23:09:58 回复(0)
选项都有问题
发表于 2019-06-14 15:26:46 回复(0)
如果忽略D选项的标点符号错误,那么正确答案确实是D
A: querySelectorAll 接收一个选择器做参数,正确用法:
document.querySelectorAll(".file")[1];

B: 会返回undefined,因为getElementById 只返回符合id的那一个节点,而不是一个列表不能使用下标,正确写法
document.getElementById("file");

C: file 根本不是一个tag,会出错, 正确用法:
document.getElementsByTagName("input")[0];

D: 仔细看选项 包裹file的引号,仔细看发现根本不是个引号,更正后:
document.getElementsByClassName("file")[1];

总结: 严格来说没有正确答案,忽略标点符号可以选D


编辑于 2019-10-25 09:52:07 回复(6)
选项全都是错的:
A. 选择的是file标签的第一个元素结点,,不存在file标签
B. 选择的是id为file,但是他不是一个数组,因此不能有下标
C. 选择的是file标签的第一个元素结点,不存在file标签
D. 选择的是class为file的第一个元素结点,此时选中的是form标签,而不是input结点。
编辑于 2019-08-31 17:07:13 回复(10)
全部选项都是错的。。
发表于 2019-03-31 22:38:04 回复(2)
真正的问题不应该是每个类名都没加 . 吗。。。。
发表于 2020-09-17 22:51:48 回复(0)
D选项不是对的吗?找到ID为file的结点,只有inout标签的ID为file呀
发表于 2020-07-27 12:20:08 回复(0)
D哪里错了,getElementsByClassName(‘file')[1]的话指的是第二个file节点啊,没毛病啊。
发表于 2019-10-02 23:10:58 回复(1)
题目中 `` 元素有一个 `id="file"` 属性。 在 JavaScript 中,`document.getElementById('file')` 会直接返回这个具有对应 `id` 的 DOM 元素对象;它返回的是一个单一的 **Element**,而不是一个数组或集合。 因此,正确的用法是: ```js document.getElementById('file'); ``` **而不是**: ```js document.getElementById('file')[0]; // 这会报错,因为 getElementById(...) 返回的不是数组,也没有下标 0 ``` 其它选项的区别大致如下: 1. **document.querySelectorAll('file')[0]** - `querySelectorAll('file')` 这种用法一般指通过 CSS 选择器来匹配所有 tag 或带有指定属性的元素,但 `'file'` 并不是常规的标签名(HTML 中不存在 `<file>` 标签),也不是常规的类名或 id 选择器,所以无法正确选到这个 ``。 2. **document.getElementById('file')[0]** - `getElementById` 返回的是单一元素,不是数组或 HTMLCollection,没有下标 0。 3. **document.getElementsByTagName('file')[0]** - `getElementsByTagName('xxx')` 返回的是一个包含标签名为 `xxx` 的所有元素的 HTMLCollection。但同上,HTML 中并没有 `<file>` 这种标签,因此获取不到该 `` 元素。 综上,只有选项 D(`document.getElementById('file')`)能够正确获取到带有 `id="file"` 的输入框元素,所以 D 是正确答案。</file></file>
发表于 2025-01-03 12:13:36 回复(0)
为什么D对了,id还有多个的? 
发表于 2019-12-06 16:38:59 回复(0)
就这?
发表于 2019-12-05 15:35:13 回复(0)
byid 只能为一个唯一的节点元素, 不能用索引号索引出来这个节点 无此用法
编辑于 2019-11-18 17:31:25 回复(0)
  1. querySelectorAll( ) 接收一个选择器作为参数,若要获取 input 节点则应传入 '#file'

  2. getElementById( ) 根据 id 来选择元素,每个节点 id 不可能重复,所以选择节点直接为对应节点而不是数组,在其后用 [0] 是错误的。

  3. document.getElementByTagName 方法书写错误,应为 getElementsByTagName

发表于 2019-09-17 20:36:46 回复(0)
正确答案的下标不对
发表于 2019-09-04 21:23:32 回复(0)
不敢相信这种题目是小米出的 还是真的我水平不够
发表于 2019-04-15 16:46:09 回复(0)
选b吧
发表于 2019-04-02 02:08:23 回复(0)