【发布时间】:2016-02-10 21:06:01
【问题描述】:
我在处理需要多行“if”逻辑来处理功能的代码时遇到了一些问题。
其中两个 if 语句做同样的事情,在我看来它们是如何相互抵消的。
function visibleCheck() {
var target = document.getElementById('contentType').val();
if (target != "BYOC - Document to Exam") {
document.getElementById('VideoMinutes').style.display = 'block';
}
else document.getElementById('VideoMinutes').style.display = 'none';
if ((target != "Custom Production - Avatar") {
document.getElementById('Questions').style.display = 'block';
}
else document.getElementById('Questions').style.display = 'none';
if ((target != "Custom Production - Video") {
document.getElementById('Questions').style.display = 'block';
}
else document.getElementById('Questions').style.display = 'none';
}
第一个 if 语句运行良好。第二个似乎根本没有运行。第三个运行良好。
如果我重新订购第二个和第三个交换位置,新的第二个将不起作用。
如果我使用或运算符“||”并结合它根本不起作用的语句。
无论 if 语句的条件如何,第三条语句始终有效。
如果我将第二个和第三个都设置为 if 或语句,那么它们都不起作用。
有什么想法吗?
如果有什么不同的话,我会在 salesforce 的 visualforce 页面上使用它。
【问题讨论】:
-
您是否考虑过使用
else ifstatements? -
@BrettDeWoody 我没有考虑过,因为已经有三个,而且可能还有更多。你认为它会有所作为吗?
-
和/或
switch()(MDN docs) 声明。 -
个人建议:将您的
else箱子包裹在{}中,就像您在if箱子中一样。使事情更清洁并捕获某些错误。另一件事是第二个“似乎根本没有运行”是什么意思? -
对调试控制台的基本了解会在您的代码中显示几个明显的错误。在将代码带到这里之前,您需要了解调试的第一个基本步骤。一方面,DOM 元素上没有
.val()方法(这是一个 jQuery 方法,而不是 DOM 方法),并且括号不匹配。这两个错误都会显示在调试控制台中。
标签: javascript jquery if-statement salesforce