javascript - 为什么 DocumentFragment 没有 getElementsByName?

标签 javascript documentfragment html-templates

我正在关注 the instructions given on 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 没有实现任何 getElementsBy* 方法。但是,它确实实现了 querySelector(),因此您可以使用

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

关于javascript - 为什么 DocumentFragment 没有 getElementsByName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58037945/

相关文章:

javascript - config.js 不适用于 CKEditor

带有逗号分隔值的 Javascript 变量在 HighChart 中不起作用

javascript - 针对 DocumentFragment 的 XPath 查询

javascript - 保留对附加节点 javascript 的引用

javascript - 使用文档片段真的能提高性能吗?

html - 是否可以以编程方式在 Web 组件中插入元素?

javascript - 将 css 设置为父子大小

javascript - 查找对象的值