Обнаружение динамических элементов div с помощью getElementById()

#javascript #jquery #dynamic #getelementbyid

#javascript #jquery #динамический #getelementbyid

Вопрос:

Поэтому, когда код …

 document.getElementById('classhere').childNodes
  

.. при запуске мне удается получить все элементы с этим идентификатором, ЗА ИСКЛЮЧЕНИЕМ элементов, которые были динамически созданы функцией ‘createDiv()’:

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

Я хотел бы получить все элементы div с этим идентификатором, даже динамически созданные элементы div. Есть ли у кого-нибудь решение? Спасибо!

Комментарии:

1. Вы уверены, что ваш div уже создан?

2. Добавляете ли вы динамически созданный div в DOM страницы? можете ли вы опубликовать всю свою createDiv функцию и ту часть кода, где вы создаете новые divs

Ответ №1:

Попробуйте использовать jQuery подстановочный знак jQuery http://www.emadibrahim.com/2009/07/25/jquery-wildcard-selector /

Ответ №2:

Поэтому, когда код …
document.getElementById('classhere').childNodes

… при запуске мне удается получить все элементы с этим идентификатором

getElementById ищет отдельный элемент по идентификатору, а не по классу. Эта строка, заключенная в кавычки, будет искать элемент с id значением «classhere» и возвращать NodeList его непосредственные дочерние узлы (элементы, текстовые узлы и т.д.). Если вы создадите дополнительные элементы и либо не добавите их в DOM, либо добавите их в другом месте (не как непосредственные дочерние элементы элемента «classhere»), их не будет в NodeList . Это не имеет никакого отношения к тому, были ли они созданы во время основного синтаксического анализа HTML или постфактум с помощью JavaScript.

Я хотел бы получить все элементы div с этим идентификатором…

Может быть только один элемент с заданным идентификатором.

Если вы пытаетесь найти все элементы, id начинающиеся с «classname», вы можете использовать «атрибут, начинающийся с селектора»:

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

…выдает вам объект jQuery, содержащий все соответствующие элементы div на момент выполнения инструкции (в отличие от a NodeList , он не работает в реальном времени; если вы что-то измените, вам придется снова запускать селектор).