除非将DOM元素附加到文档,否则无法使用getElementById
方法。在将DOM元素附加到文档之前,我可以通过什么方法或机制访问和修改它?
我有一个很大的DOM元素,我想访问它的一部分。我通常使用getElementById
,但是DOM元素并没有附加到文档中。
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,但它不是我目前问题的解决方案。
发布于 2010-12-11 12:11:10
那么,您的element
变量已经有了对它的引用。
但我打赌你的意思是你想要嵌套在里面的东西。如果正确,您可以使用getElementsByTagName('*')
,然后遍历返回的集合,测试ID属性,直到找到您的属性。
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
,如果支持,则使用它。
if( div.querySelectorAll ) {
var result = div.querySelectorAll('#tester');
} else {
// Do the loop with getElementsByTagName()
}
https://stackoverflow.com/questions/4415121
复制相似问题