2013-01-17 43 views
0

原諒我,如果這很簡單。我是新來的JavaScript。Javascript多個條件從兩個或多個功能

我試圖讓某些div顯示或隱藏基於用戶回答的問題。我已經爲每個問題創建了一個函數,根據它們的值獲取該問題的結果。但我無法獲得額外的工作條件。如果兩個條件均爲真,我需要div纔出現。它似乎甚至沒有識別出任何來自& &及以後的東西。 Q1還會根據答案設置div中的一些文本。這似乎工作正常。

// Question 1 
function analyzeQ1(answerQ1) { 
    if (answerQ1 == "TMC" || answerQ1 == "CMH" || answerQ1 == "SLH" || answerQ1 == "KU" || answerQ1 == "UMKC") { 
     document.getElementById('A1').innerHTML = " • Contact Research Administration at "+ answerQ1; + hideStuff('Q1a') + showStuff('A1') 
    } else if 
     (answerQ1 == "Other") { 
     showStuff('Q1a') 
} 

}

//Question 3 
function analyzeQ3(answerQ3) { 
    if (answerQ3 == "no" && answerQ1 == "TMC") { 
     showStuff('A3') + hideStuff('Q3a') 
    } else if 
     (answerQ3 == "yes") { 
      showStuff('Q3a') 
} 
+1

你必須在這條線的寄生分號:的document.getElementById(「A1」)的innerHTML – jholloman

+1

順便說一句 - 你可以重新寫爲更清潔'如果[「TMC」,「CMH 「,」SLH「,」KU「,」UMKC「]。indexOf(answerQ1)!== -1'對於舊版本的IE,您可以使用此墊片:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf –

+0

@JeremyJStarcher它似乎不喜歡那樣。我只是用這個權利來替換if行嗎?保持大括號的結束? – cebronix

回答

0

在第一代碼片段你有一個流浪分號:

document.getElementById('A1').innerHTML = " • Contact Research Administration at "+ answerQ1; 
hideStuff('Q1a'); 
showStuff('A1'); 

在第二代碼片段您參考answerQ1但從來沒有把它傳遞給函數所以你需要:

//Question 3 
function analyzeQ3(answerQ3, answerQ1) { 
    if (answerQ3 === "no" && answerQ1 === "TMC") { 
     showStuff('A3') + hideStuff('Q3a') 
    } else if 
     (answerQ3 === "yes") { 
      showStuff('Q3a') 
} 

請注意,我使用=== vs ==。 ==是邪惡的,你應該忘記它存在於Javascript中。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Comparison_Operators

+0

如果我刪除該分號,它不會讀取hidestuff和showStuff信息。我收到「TMCundefined undefined的聯繫研究管理」。我也嘗試在第二個片段中調用answerQ1,但它似乎沒有什麼區別。感謝'==='的提示,我一定會從現在開始使用。 – cebronix

+0

@ user1987534啊我明白你要做什麼了。您確實需要分號,但您應該在不同的行上調用函數,因爲您不希望將這些函數的結果添加到顯示文本中。 – jholloman

+0

@jhollman好的謝謝!我移動了另外兩個函數調用分開的行,然後我能夠刪除分號沒有問題。顯然,如果他們在自己的路線上,可以使用或不使用它們。另一個有用的提示但我仍然無法得到答案Q3來檢查答案Q1。事實上,甚至包括我在回答「否」時會殺死所調用的函數。 – cebronix