2013-03-12 2 views
1

Я создал DIV, используя следующий код ...Доступ к дочерним узлам в DIV с помощью JavaScript

var bannerBox = document.createElement("div"); 
bannerBox.id = "bannerBox"; 

... и второй DIV следующим образом ...

var bannerAd = document.createElement("div"); 
bannerAd.className = "bannerAd"; 

выше divs были созданы в одной функции. Теперь в другой функции, я попытался получить доступ к первому DIV следующим образом ...

var allAds = document.getElementById("bannerBox").childNodes; 

... но он производит эту ошибку: неперехваченной ошибка не может читать недвижимость ChildNodes пустых

ответ

3

Вы должны на самом деле поставить bannerBox DIV в документе, путем передачи его в appendChild или insertBefore на некотором элементе, которая находится в документе (например, как document.body):

document.body.appendChild(bannerBox); 

(Но это может быть любой элемент в документе, не должны быть body.)

После того, как это в документе, вы можете получить его id путь вы показали.

И, конечно (это не проблема, вы испытываете, но это может быть следующей проблемы), для bannerBox иметь дочерние узлы (например, для childNodes не быть пустым NodeList), вам нужно что-то положить в нее. Из ваших имен переменных, я имею в виду, вероятно, вы хотите поставить bannerAd в нем, например:

bannerBox.appendChild(bannerAd); 
+1

принадлежит 20secs> _ < – Christoph

+0

я использовал этот document.getElementsByTagName («тело») [0 ] .appendChild (bannerBox); , но он вызывает ошибку не может вызвать метод appendchild undefined –

+0

@AmberAslam: Если вы использовали это из кода в 'head' документа, это могло быть почему (пока еще нет« тела »). Перемещение тега 'script', содержащего код * в * тег body, должно сортировать его. –

Смежные вопросы