2016-07-14 159 views
0

我有這個.js文件代碼:變量賦值輸入值

var test = document.getElementById('box').innerHTML; 

這HTML代碼

<textarea id="box">testing</textarea> 
<div> 
    <?php echo '<script>document.writeln(test)</script>' ?> 
</div> 

我期待div的將顯示testing但是,相反,我得到了undefined結果。但後來,當我改變var test到:

var test = "this is just a test"; 

div顯示完全var test值。有人可以解釋發生了什麼嗎?

+0

打開你的Javascript控制檯,你看到一個錯誤信息? – Barmar

+0

根據您向我們展示的內容,您正試圖在元素加載之前加載'innerHTML'。正如Barmar提到的,您應該在控制檯中看到錯誤。 –

+0

@Barmar是的,我沒有得到這個錯誤'未捕獲的類型錯誤:無法讀取屬性'innerHTML'的null'。我試圖找到解決方案,但無法獲得解決方案。我有點新PHP – procatmer

回答

5

的問題是:

var test = document.getElementById('box').innerHTML; 

正在跑你的頁面加載後,因此,測試是沒有定義。另一個腳本首先運行,因爲它首先被發現。

如果你真的想這樣做,你可以做這樣的事情。將定義測試的腳本立即放置在您定位的HTML元素之後。這將定義變量test

<textarea id="box">testing</textarea> 
 
<script>var test = document.getElementById('box').innerHTML;</script> 
 
<div> 
 
    <script>document.writeln(test)</script> 
 
</div>