2015-09-04 2 views
1

отредактировано объяснить загрузку страницыПолучить Див идентификатор внутри другого сНу ид с JavaScript

Моего HTML страница имеет DIV внутри другой DIV, и ссылается идентификатором и как уникальная по всему документу.

<head> 
<script type="text/javascript" src="myscript.js"></script> 
</head> 
... 
<body onload=display()> 
<div id="rightwork"> 
<div id="mychart" > </div> 
</div> 
... 

Мой JavaScript предназначен написать что-то в пределах «mychart» DIV, но я не могу управлять, чтобы ссылаться на него :(

Вопрос связан с this one except this one is a class inside an id.

Это мой JavaScript:

function display() { 
    var code = "<a onclick=\"second(); return false;\" href=\"#\">Hello</a>"; 
    document.getElementById('rightwork').innerHTML = code; 
} 

function second() { 
    console.log(document.getElementById('rightwork')); 
    console.log(document.getElementById('mychart')); 
} 

линия

document.getElementById("mychart"); 

возвращает null ...

Принимая во внимание, что это хорошо работает!

document.getElementById("rightwork"); 

Это возвращает ожидаемый div.

Я попытался это

document.getElementById("rightwork").getElementById("mychart"); 

, который, конечно, не работает, как getElementById ("rightwork") возвращает один элемент.

Итак, каково решение ссылки на внутренний div?

+0

Если документ загружен правильно, почему document.getElementById (» mychart "); не будет работать? – eomeroff

+0

Помните, что 'id' должен быть * уникальным * в качестве документа. – connexo

+0

@eomeroff Вы правы на самом деле: я нашел ошибку: отображение HTML я генерируется функцией display() и что у меня нет getElementById ... Если я изменяю код var на: var code = "

" ; Он будет работать. Тем не менее, я удивляюсь, почему правые работают во втором()? – user1381

ответ

-1

Не могли бы вы разместить весь контент myscript.js. Если документ загружен правильно, почему document.getElementById("mychart"); не работает?

Возможно, что <div id="mychart" > </div> не загружен при выполнении javascript, и в это время было загружено <div id="rightwork">.

Для обеспечения полной загрузки документа поместите свой <script type="text/javascript" src="myscript.js"></script> в конец html.

+0

Почему голос? – eomeroff

+0

Лично я не голосовал. – user1381

3

Просто используйте

window.onload = function(){ 
    var myChart = document.getElementById("mychart"); 
    // ... code that loads chart 
} 

Или двигаться

<script type="text/javascript" src="myscript.js"></script> 

на колонтитуле застраховать дом загружается перед запуском сценария

+0

Вы правы, что это проблема с загрузкой страницы, хотя ваше решение не разрешает мой конкретный случай (отредактирован). См. Мой комментарий к eomeroff, я отсутствовал id mychart в коде HTML, который я генерировал после щелчка. – user1381

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