Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么DocumentFragment没有getElementsByName?_Javascript_Documentfragment_Html Templates - Fatal编程技术网

Javascript 为什么DocumentFragment没有getElementsByName?

Javascript 为什么DocumentFragment没有getElementsByName?,javascript,documentfragment,html-templates,Javascript,Documentfragment,Html Templates,我下面使用。与示例中给出的略有不同,我的代码是: /。。。 const item=document.importNode(template.content,true); item.getElementsByName(“id”)[0].textContent=token; item.getElementsByName(“名称”)[0]。textContent=file.name; item.getElementsByName(“大小”)[0]。textContent=file.size; fi

我下面使用
。与示例中给出的略有不同,我的代码是:


/。。。
const item=document.importNode(template.content,true);
item.getElementsByName(“id”)[0].textContent=token;
item.getElementsByName(“名称”)[0]。textContent=file.name;
item.getElementsByName(“大小”)[0]。textContent=file.size;
fileList.appendChild(项);
// ...

但是,似乎
,其中
\uuuu proto\uuuu
DocumentFragment
没有
getElementsByName
方法。 现在有了
getElementById
querySelector
对我来说是不是很困惑

有什么原因吗


与大小写相关,我的浏览器是FireFox Quantum 69.0.1,Chrome Canary 79.0.3918.0。

DocumentFragment
没有实现任何
getElementsBy*
方法。但是,它确实实现了
querySelector()
,因此您可以使用

item.querySelector("[name=name]").textContent = token;

Document对象用于访问和编辑任何HTML元素getElementbyId()、getElementbyTagName()和getElementsByClassName()是Document对象使用的方法

当您试图使用document对象的方法访问Template元素的节点时,它将不起作用。您可以实现相同的代码以附加到filelist对象中

var Node1=document.getElementById(“模板”);
var Node2=document.importNode(Node1,true);
document.getElementById(“表1”).appendChild(节点2)

1.
A.
20
N

DocumentFragment
旨在非常轻量级,它没有实现完整的
Document
接口。它没有任何
getElementsByXXX
方法,只有
getElementById
。请注意,常规HTML元素也没有实现
getElementsByName
。它只在
文档
元素上可用。我想
查询选择器(全部)
会更重吗?我是否误解了“轻量级”?感谢您指出“常规HTML元素不实现getElementsByName”。我一点也不知道。但是,不管您以前对轻量级的评论如何,常规HTML元素都有
getElementsByClassName
getElementsByTagName
,它们不属于
DocumentFragment
所有。我会编辑我的问题…嗯。这个问题似乎不好。我想最好把它关上。再次感谢!这里有getElementsByName():谢谢。在HTML5中,“name”属性已被弃用,并已被许多元素的“id”属性所取代。在适当的地方使用document.getElementById()方法。另外,请查看getElementsByCassName()和getElementsByTagName()方法。
id
不会替换表单输入的
name
。感谢您的回复!我确实注意到有
querySelector
。但我只是想知道:既然在
DocumentFragment
上实现了
querySelector(All)
getElementById
方法,为什么没有
getElementsBy*
呢?是否有任何特定的考虑因素来阻止标准/实现,或者我(作为DOM/JavaScript的新手)遗漏了什么?