我正在按照MDN上给出的说明使用<template>
。与提供的示例略有不同,我的代码如下:
<template id="template">
<tr>
<td name="id"></td>
<td name="name"></td>
<td name="size"></td>
<td name="Status">
</td>
</tr>
</template>
// ...
const item = document.importNode(template.content, true);
item.getElementsByName("id")[0].textContent = token;
item.getElementsByName("name")[0].textContent = file.name;
item.getElementsByName("size")[0].textContent = file.size;
fileList.appendChild(item);
// ...
然而,看起来
item
的__proto__
为DocumentFragment
的情况下没有getElementsByName
方法。对我来说,现在有getElementById
和querySelector
非常令人困惑。是否有任何原因呢?
如果相关的话,我的浏览器是FireFox Quantum 69.0.1和Chrome Canary 79.0.3918.0。
DocumentFragment
旨在非常轻量级,它不实现完整的Document
接口。它没有任何getElementsByXXX
方法,只有getElementById
。 - BarmargetElementsByName
。它仅在document
元素上可用。 - BarmarquerySelector(All)
会更重一些? 我有误解“轻量级”吗? - DummmygetElementsByClassName
和getElementsByTagName
,它们不属于DocumentFragment
。 我会编辑我的问题... - Dummmy