使用getElementById()检测动态div元素

时间:2011-04-05 08:19:39

标签: javascript jquery dynamic getelementbyid

所以当代码......

document.getElementById('classhere').childNodes

...运行,我设法获取具有该ID的所有元素,除了由'createDiv()'函数动态创建的元素:

function createDiv()
{
  var divTag = document.createElement("div");
  divTag.id = "classhere" + num;
...

我想用Id获取所有div元素,甚至是动态创建的div元素。有没有人有办法解决吗?谢谢!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

  

所以当代码......   
document.getElementById('classhere').childNodes   
...运行,我设法获得具有该ID的所有元素

getElementById按ID 查找单个元素,而不是按类查找。引用的那一行将查找具有id值“classhere”的元素,并返回其直接子节点NodeList(元素,文本节点等)。如果您创建了更多元素,并且未将它们添加到DOM中,或者将它们添加到其他位置(而不是“classhere”元素的直接子元素),则它们将不在NodeList上。它与它们是在主HTML解析期间还是在事后用JavaScript创建无关。

  

我想用Id获取所有div元素......

只有一个元素具有给定的ID。

如果您要查找id “classname”开头的所有元素,您可以使用"attribute starts with selector"

var divs = $("div[id^='classname']");

...为您提供一个jQuery对象,其中包含您执行语句时所有匹配的div(与NodeList不同,它不是实时的;如果您更改了内容,则必须运行选择器再次)。