2010-12-17 128 views
1

我想打開一個div並使用這個函數關閉它,但它不起作用,哪裏是錯誤的部分,我不能修復它,任何人都可以幫助我嗎?Javascript if if else else

function Element(id) 
{  
    if(document.getElementById(id).style.display = 'block') 
    { 
     document.getElementById(id).style.display = 'block'; 
    } 
    else 
    { 
     document.getElementById(id).style.display = 'none'; 
    } 
} 
+0

請通過單擊工具欄中的格式代碼按鈕來正確格式化您的代碼。 – SLaks 2010-12-17 17:39:57

回答

1

謝謝!這一個工作。但我改變了if裏面的代碼。因爲它說,如果你發現塊應該是沒有。

function Element(id) { 
    if(document.getElementById(id).style.display == 'none') { 
     document.getElementById(id).style.display = 'block'; 
    } else { 
     document.getElementById(id).style.display = 'none'; 
    } 
} 
3

您的if語句分配屬性而不是比較它。
更改====

+0

爲了澄清@SLaks的答案,'='是賦值運算符(例如'foo =「bar」')。 '=='和'==='是比較運算符(例如'if(foo ==「bar」')。 – charliegriefer 2010-12-17 17:41:48

+0

具體而言,if(...)中的=應該被改變,但其他的不應該。 – psmay 2010-12-17 17:43:51

1
function Element(id) { 
     if(document.getElementById(id).style.display == 'block') { 
      document.getElementById(id).style.display = 'block'; 
     } else { document.getElementById(id).style.display = 'none'; } 
} 
+0

Thank you!This one worked。!but like this; – Extelliqent 2010-12-17 17:49:44

3

我建議你用三元運算符改寫它,它更多的可讀性和可維護性:

var element = document.getElementById(id); 
element.style.display = element.style.display === 'block' ? 'none' : 'block'; 
+0

將'?'和':'上移一行,或者你可能成爲分號插入的犧牲品 – xj9 2010-12-17 17:59:49

+0

@indieinvader:我不認爲分號插入會在他的第一個版本中發生了,即使他在報表之前做了回報。 – KooiInc 2010-12-17 20:23:30

0

作爲第一個條件沒有影響你並不需要一個else或三元運算符。所以這就足夠了......

if(document.getElementById(id).style.display != 'block') 
{ 
    document.getElementById(id).style.display = 'none'; 
}; 
+0

啊,我看到你自己的回答有反過來的動作,所以這不再適用。 – 2010-12-17 18:25:16