2013-11-02 68 views
-2

OK,我實在無法描述它一字一句,所以我會用一個例子:JavaScript變量等於變量真正

function f1() { 
    document.write(vavariable) 
}; 

function f2(){ 
    if(variablefot) 
    document.body.style.color='red'; 
}; 

variablefot = false; 
variablefotok = variablefot = true; 
variable1 = 'text1' +variablefotok; 

variable2 = 'text2'; 

vavariable = variable1 

現在,當我使用<script>f1();f2();</script>和vavariable =變量1 我應該得到紅色的text1 但我越來越紅的text1 +文字「真」

當我使用vavariable2我想text2的無機身顏色紅色 但我仍然得到RED文本2

我試圖做到這一點的Wi th函數,但它也不起作用。

請幫助我使它工作。我已經失去了幾個小時已經試圖做到這一點。謝謝!

+0

你能解釋一下你想要發生什麼嗎? – Popnoodles

+0

當我使用vavariable = variable1時,我想讓text1和body顏色變爲紅色。而當我使用vavariable = variable2我想獲得text2沒有紅色的身體顏色。 – Simon

+1

在第一個代碼塊的底部,在調用'f1'和'f2'之前,你認爲變量中有什麼? – Sumurai8

回答

1

Variablefotok等於true,所以這就是爲什麼這是真的寫入。

要更改主體顏色,只需使用f2功能,除了將顏色更改回默認黑色。實質上,您可以將文本寫入文檔並根據變量每次更改顏色,也可以將HTML代碼寫入文檔,如<span style="color:red">text</span><span style="color:black">text</span>。你也可以使用類來代替內聯CSS聲明。這將適用於這種情況。

function write(){ 
    document.write(text); 
    document.body.style.color = color; 
} 

variable1 = 'text1'; 
variable2 = 'text2'; 

通過該代碼,您可以執行以下功能。如果您將所有文本存儲在變量中,您還可以像顯示的那樣儘可能多地使用它。

write(variable1, 'red'); 
write(variable2, 'black'); 
write(variable3, 'green'); 
write(variable4, 'blue'); 
write(variable5, 'brown'); 
write(variable6, 'yellow'); 
0

好了,開始有:

variablefotok = variablefot=true; 

會先分配真實variablefot,然後variablefotok。這兩者都是如此。

variable1 = 'text1' +variablefotok; 

由於variablefotok是true,變量1現在將'text1true'。因此變量最終將會是'text1true'

function f2(){ 
    if(variablefot) 
     document.body.style.color='red'; 
}; 

如果variablefot = true,會(如果調用)將body的顏色更改爲紅色。由於這是真實的,所以無論變量的值如何,總會將體色改爲紅色。

0

這是真的不清楚你正在嘗試做什麼,但無論如何我可能會有所幫助。

這裏是你所擁有的,或多或少:http://jsfiddle.net/ySqGg/

我應該得到紅色的text1但我越來越紅的text1 +文字「真」

這是因爲你的「並稱」 true爲一個字符串。

variablefotok = variablefot=true; 
// variablefotok and variablefofot are now both set to true 

variable1 = 'text1' +variablefotok; 
// same as: variable1 = 'text1' + true; 
// `true` is converted into a string so it can be combined with a string 
// variable1 is now `text1true` 

那麼爲什麼會這樣呢?那麼讓我們來看看早一行:

variablefot = false; 
variablefotok = variablefot = true; 

如下這可以澄清:

variablefot = false; 
variablefotok = (variablefot = true); 

因此首先要設置variablefotfalse。然後在下一行中將其設置爲true。賦值語句返回分配的值,因此您也將variablefotok設置爲true。

然後稍後f2運行,並variablefot現在是真實的,你會變紅。

您是不是想要做比較呢?

variablefotok = (variablefot == true); 

隨着這一變化,該文確實變成紅色,因爲variablefot仍然falsehttp://jsfiddle.net/ySqGg/1/

但是你很少需要與true進行比較。您可以簡單地使用該變量,因爲它是truefalse

variablefotok = variablefot; 

這也不會使任何東西變成紅色。請參閱:http://jsfiddle.net/ySqGg/2/


這是令人困惑的回答,因爲你設置很多變數,但僅使用一個任何東西usefult(在f2variablefot)。如果我是你,我會考慮你有什麼變數,並確保你真的需要每一個變量,然後刪除其他變量。