Javascript来自两个或多个函数的多个条件

Javascript来自两个或多个函数的多个条件,javascript,conditional-statements,Javascript,Conditional Statements,如果这很简单,请原谅我。我是javascript新手 我试图根据用户对问题的回答来显示或隐藏某些div。我为每个问题创建了一个函数,该函数根据问题的值获取问题的结果。但是我无法使&&附加条件起作用。我需要div仅在两个条件都为真时出现。它甚至似乎无法识别来自&&和其他方面的任何东西。Q1还根据答案设置div中的一些文本。这似乎很有效 // Question 1 function analyzeQ1(answerQ1) { if (answerQ1 == "TMC" || answerQ1

如果这很简单,请原谅我。我是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')
}
}


在第一个代码段中,您有一个游离的分号:

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中


这一行有一个分号:document.getElementById('A1')。innerHTMLBTW-如果[“TMC”、“CMH”、“SLH”、“KU”、“UMKC”],,您可以将其重新编写为更干净的
。indexOf(answerQ1)!=-1
对于旧版本的IE,您可以使用以下垫片:@JeremyJStarcher似乎不喜欢这样。我只是用这个来替换if行,对吗?把花括号放在末尾?我忘了用parens()来包装条件<代码>如果([“TMC”、“CMH”、“SLH”、“KU”、“UMKC”].indexOf(answerQ1)!==-1)@JeremyJStarcher Sweet!那要干净得多。谢谢。如果我删除分号,它不会读取hidestuff和showStuff信息。我得到了“联系TMC的研究管理部门”的定义。我也试着在第二段中调用answerQ1,但似乎没有什么不同。谢谢你关于“==”的提示,从现在起我一定会使用它。@user1987534啊,我明白你的意思了。您确实需要分号,但函数调用应该在单独的行中进行,因为您不希望将这些调用的结果添加到显示文本中。@jhollman好的,谢谢!我将另外两个函数调用移到了不同的行上,然后就可以删除分号了,没问题。显然,如果他们有自己的想法,不管有没有他们,这都是有效的。另一个有用的提示。但我似乎仍然无法让answerQ3同时检查answerQ1。事实上,即使包括我所拥有的,当答案为“否”时,也会终止调用的函数。看起来您需要使用浏览器,如Chrome和open dev tools(F12),然后设置断点进行调试,看看出现了什么问题。除非我用错了(可能),否则调试不会发现任何问题。JSlint也找不到任何东西。谢谢你的提示,我会继续尝试的。
//Question 3
function analyzeQ3(answerQ3, answerQ1) {
    if (answerQ3 === "no" &&  answerQ1 === "TMC") {
        showStuff('A3') + hideStuff('Q3a')
    } else if
        (answerQ3 === "yes") {
            showStuff('Q3a')
}