javascript - 有没有办法在 documentFragment 中找到元素?

标签 javascript dom documentfragment

var oFra = document.createDocumentFragment();
// oFra.[add elements];
document.createElement("div").id="myId";
oFra.getElementById("myId"); //not in FF

在将片段附加到文档之前如何获取“myId”?

最佳答案

所有这些答案都相当古老,从 querySelectorAll 开始。和 querySelector没有被广泛使用。需要注意的是,这两个接受 CSS 选择器作为参数的函数在 DocumentFragment 上工作。 s 在现代浏览器中,并且应该是处理问题中情况的首选方式。一些答案中提出的替代解决方案对于不支持 querySelectorAll 的旧版浏览器来说是一个很好的方法。或 querySelector .

这是一个示例用法:

var df = document.createDocumentFragment();
var div = document.createElement('div');
div.id = 'foo';
df.appendChild(div);
var result = df.querySelector('#foo'); // result contains the div element

一个好的实现应该首先使用对象检测来查看浏览器是否支持这一点。例如:
function getElementByIdInFragment(fragment, id) {
    if (fragment.querySelector) {
        return fragment.querySelector('#' + id);
    } else {
        // your custom implementation here
    }
}

关于javascript - 有没有办法在 documentFragment 中找到元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1643349/

相关文章:

javascript - 针对 DocumentFragment 的 XPath 查询

javascript - 为什么包含在一个字符串变量中的 Javascript 一旦被分配给另一个字符串变量就会立即执行?

javascript - div 中的 jQuery 重复项目

javascript - 需要在视口(viewport)上加载 div

javascript - DOMContentLoaded inside $(document).ready?

Javascript - 获取文档片段中的元素数量

javascript - 就绪与就绪已弃用

javascript - 如何使用 DOM 通过单选按钮更改背景大小 (JAVASCRIPT)

javascript - 在 .change() 处理程序之后通过 .load() 重新加载表时,JQuery 丢失初始单击事件

javascript - 如何将 CSS 规则添加到跨 IE/FF 的文档片段中?