2011-09-11 145 views
0

我需要在HTML中顯示JS變量。製作全局變量js

<script language="JavaScript"> 
function showHide(toShow,toHide,theValue) { 
    obj = document.getElementById(toShow); 
    obj2 = document.getElementById(toHide); 
    obj.style.display = 'block'; 
    obj2.style.display = 'none'; 
} 
</script>  

但我需要在HTML中顯示「theValue」。 我聽到這個消息:

<script type="text/javascript"> 
document.writeln(theValue); 
</script>  

但這種 「theValue」 不是全局變量。我怎樣才能使它成爲全局變量? (功能不足)。

<table><tr><td onMouseOver="showHide(2,1,67);">sss</td></tr></table> 
<div id="2" style="display:none;"> number "variable" </div>  
+0

'document.writeln'應該只在文檔被解析時執行。 'showHide'似乎在文檔被解析後被稱爲*,所以你不應該使用它。你想在哪裏輸出'theValue'?你可以獲得對該元素的引用,並設置它的'innerHTML'(當然是'showHide')。 –

+0

我編輯過,請看看我在我的問題中添加的最後一行。如何顯示真正的變量「theValue」而不是「變量」? – Henrikh

+0

Marco的答案會起作用,你可以在你的函數中添加'obj.innerHTML =「number」+ theValue;':http://jsfiddle.net/SJdea/ –

回答

0

您可以避免在變量前添加var關鍵字。

+0

我不明白你能舉一個例子嗎? – Henrikh

1

只需使用window.theValue代替,這將在全球範圍內

+0

undefined ... :( 問題是,我沒有全局變量... – Henrikh

+0

@Daniel:問題是,'document.writeln(theValue);'是在你調用'showHide'之前執行的(I假設)。也許你可以創建一個http://jsfiddle.net/ demo。 –

+0

-1不會超過標題。實際的問題是不同的。 –

1

您可能正在尋找

obj.innerHTML = theValue; 

或任何商品功能的框架提供。你在使用jQuery,YUI或其他庫嗎?

至於全局變量,通常的建議是,如果可能的話,根本不使用它們。

但是,如果你確實需要一些全局paramer,你可以做一個單一的對象(任何函數之外,在你的頁面的開始)像

var MYNS = {}; 

,並創建你的對象裏面,以保持全球變量空間儘可能乾淨:

MYNS.theValue = 42 
+0

也許你是對的,但如何使用它? 在我的函數中設置此代碼,它會顯示在「toShow」div部分? – Henrikh

+0

@Daniel:你試過了嗎?我們無法真正幫助您,因爲您沒有指定*您要輸出的值。對於我們所知道的,您正在調用某個函數,並希望在某處打印某個值。如果你向我們解釋你的代碼應該做什麼,那麼我們可以更有幫助。 –

+0

對不起,我沒有這樣做過。現在我編輯了我的問題,並在最後一行添加了我的HTML部分 – Henrikh