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的新手)遗漏了什么?