据我所知的document.getElementById(“MYID”)将只寻找那些已经在文档中的HTML元素。比方说,我创建通过JS一个新的元素,但我还没有追加它尚未到文档的身体,是有办法,我可以通过它的id访问这个元素像我通常会用的getElementById呢?

var newElement = document.createElement('div');
newElement.id = 'myId';
// Without doing: document.body.appendChild(newElement);
var elmt = document.getElementById('myId'); // won't work

是否有一个解决方法吗? (我必须告诉我不希望存储此特定元素的任何引用,这就是为什么我需要通过其ID来访问它)

谢谢!

有帮助吗?

解决方案

如果它不是文档的一部分,那么就可以不使用document.getElementById抓住它。 getElementById做一个DOM查找,所以元素必须是在树中被发现。如果您创建一个浮动的DOM元素,它仅仅存在于内存中,而不是从DOM访问。它必须被添加到DOM可见。

如果您以后需要引用的元素,只需通过参照其他的功能 - 在JavaScript中的所有对象都按引用传递,所以工作是浮动的DOM元素从内另一个函数修改原始,而不是副本<。 / p>

其他提示

的getElementById是文档对象的方法。它不会在文件中不返回任何东西。

在不存储参考,是吗?如果你能神奇地将其拉出通过ID的空气,然后将空气将它的引用。

如果您创建它,只是传递对象到其他功能,直接访问它?

function createDiv()
{
  var newElement = document.createElement('div');
  doWorkWithDiv(newElement);
}

function doWorkWithDiv(element)
{
  element.className = 'newElementCSS';
  element.innerHTML = 'Text inside newElement';
  addToDoc(element);
}

function addToDoc(element)
{
  document.body.appendChild(element);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top