Обнаружение динамических элементов div с помощью getElementById () - PullRequest
0 голосов
/ 05 апреля 2011

Таким образом, когда код ...

document.getElementById('classhere').childNodes

... запускается, мне удается получить все элементы с этим ИДЕМОМ, КРОМЕ для элементов, которые были динамически созданы функцией 'createDiv ()':

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

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

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Итак, когда код ...
document.getElementById('classhere').childNodes
... запускается, мне удается получить все элементы с этим идентификатором

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

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

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

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

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

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

0 голосов
/ 05 апреля 2011

Попробуйте jQuery jQuery Wildcard Selector http://www.emadibrahim.com/2009/07/25/jquery-wildcard-selector/

...