2015-09-04 38 views
1

編輯解釋頁面加載獲取裏面內部的div ID DIV ID用JavaScript

我的HTML頁面有另一格內一個div,都是由ID引用,並在整個文檔既獨特。

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

我的JavaScript的意思寫的「mychart」專區內的東西,但我不能設法引用它:(

問題是關係到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')); 
} 

​​

返回null ...

但是,這個工作正常!

document.getElementById("rightwork"); 

這將返回預期的div。

我嘗試這個

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

這當然不工作爲的getElementById( 「rightwork」)返回一個元素。

那麼,引用內部div的解決方案是什麼?

+0

前的DOM加載如果文檔正確裝入爲什麼的document.getElementById(」 mychart「);不會工作? – eomeroff

+0

請注意,'id'必須是* unique *作爲每個文檔。 – 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的評論,我錯過了單擊後生成的HTML代碼中的mychart id。 – user1381