首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在将新创建的DOM对象插入到文档之前,如何对其使用getElementById?

在将新创建的DOM对象插入到文档之前,如何对其使用getElementById?
EN

Stack Overflow用户
提问于 2010-12-11 11:57:37
回答 2查看 1.4K关注 0票数 4

除非将DOM元素附加到文档,否则无法使用getElementById方法。在将DOM元素附加到文档之前,我可以通过什么方法或机制访问和修改它?

我有一个很大的DOM元素,我想访问它的一部分。我通常使用getElementById,但是DOM元素并没有附加到文档中。

代码语言:javascript
运行
复制
var element = document.createElement("div");  
element.id = 'testqq';  
var el = document.getElementById('testqq'); // el will be null!

来源:https://developer.mozilla.org/en/dom/document.getelementbyid

我正在寻找一个不使用jQuery的答案。我喜欢jQuery,但它不是我目前问题的解决方案。

EN

Stack Overflow用户

回答已采纳

发布于 2010-12-11 12:11:10

那么,您的element变量已经有了对它的引用。

但我打赌你的意思是你想要嵌套在里面的东西。如果正确,您可以使用getElementsByTagName('*'),然后遍历返回的集合,测试ID属性,直到找到您的属性。

代码语言:javascript
运行
复制
var div = document.createElement('div');

div.innerHTML = '<p>yo</p><div><span id="tester">hi</span></div>';

var all = div.getElementsByTagName('*');

   // search for element where ID is "tester"
for (var i = 0, len = all.length; i < len; i++) {
    if (all[i].id === 'tester') {
        var result = all[i];
        break;
    }
}

alert( result.id );

在尝试循环之前,您可以测试浏览器是否支持querySelectorAll,如果支持,则使用它。

代码语言:javascript
运行
复制
if( div.querySelectorAll ) {
    var result = div.querySelectorAll('#tester');
} else {
    // Do the loop with getElementsByTagName()
}
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4415121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档