如何用javascript编写if-else语句
有谁能帮我做这个if-else语句吗 编码如何用javascript编写if-else语句,javascript,django-templates,Javascript,Django Templates,有谁能帮我做这个if-else语句吗 编码 <script> $("#id_add_select").change(function(){ if($("#id_add_select" == "2")){ handler(1) } else { handler(2) } }); function handler(situation){ var situation = situation; switch (situ
<script>
$("#id_add_select").change(function(){
if($("#id_add_select" == "2")){
handler(1)
} else {
handler(2)
}
});
function handler(situation){
var situation = situation;
switch (situation)
case 1:
display: (".name")
display: (".address")
case 2:
disable: (".age")
disable: (".email")
}
</script>
$(“#id#add_select”).change(函数(){
如果($(“#id_add_select”=“2”)){
处理程序(1)
}否则{
处理程序(2)
}
});
函数处理程序(情况){
var情境=情境;
开关(情况)
案例1:
显示:(“.name”)
显示:(“.address”)
案例2:
禁用:(“.age”)
禁用:(“.email”)
}
html编码
<html>
------
<select name="add_select" id="id_add_select">
<option value="1">working</option>
<option value="2">not working</option>
<option value="3">retired</option>
</select>
-------
------
工作
不起作用
已退休的
-------
我的情况是,如果我选择2“不工作”,那么它将显示案例1。否则将显示案例2。基本的,但我就是搞不懂。非常感谢 这是不对的:
if($("#id_add_select" == "2")){
您可能希望执行以下操作:
if($(this).val() == 2) {
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
您可以对代码进行更多优化,但这应该是正确的方向:
$("#id_add_select").change(function(){
if($(this).val() == 2){
handler(1)
} else {
handler(2)
}
});
替代解决方案
在我看来,使用带有函数的映射对象比使用switch语句更简洁。所以我可能会这样做:
if($(this).val() == 2) {
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
演示:这不对:
if($("#id_add_select" == "2")){
您可能希望执行以下操作:
if($(this).val() == 2) {
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
您可以对代码进行更多优化,但这应该是正确的方向:
$("#id_add_select").change(function(){
if($(this).val() == 2){
handler(1)
} else {
handler(2)
}
});
替代解决方案
在我看来,使用带有函数的映射对象比使用switch语句更简洁。所以我可能会这样做:
if($(this).val() == 2) {
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
演示:
if($(“#id#u add_select”=“2”){
if($(“#id_add_select”).val()=“2”){
如果($(“#id#u add_select”=“2”){
如果($($(“#id#u add u#u select”).val()=“2”){/code>如果你没有首先得到任何一个值:
<script>
$("#id_add_select").change(function(){
if($("#id_add_select").val()==2){
handler(1);
} else {
handler(2);
}
});
</script>
$(“#id#add_select”).change(函数(){
if($(“#id_add_select”).val()==2){
处理者(1);
}否则{
处理者(2);
}
});
不要忘了在开关循环中的每种情况后都放上break语句。首先,您没有得到任何值:
<script>
$("#id_add_select").change(function(){
if($("#id_add_select").val()==2){
handler(1);
} else {
handler(2);
}
});
</script>
$(“#id#add_select”).change(函数(){
if($(“#id_add_select”).val()==2){
处理者(1);
}否则{
处理者(2);
}
});
不要忘记在switch循环中的每一个case后面都放上break语句。我认为这段代码更干净:
<script>
$("#id_add_select").change(function(){
if( $(this).val() == "2"))
handler(1)
else
handler(2)
});
function handler(situation){
switch (situation){
case 1:
display: (".name");
display: (".address");
break;
case 2:
disable: (".age");
disable: (".email");
break;
}
}
</script>
$(“#id#add_select”).change(函数(){
if($(this.val()=“2”))
处理程序(1)
其他的
处理程序(2)
});
函数处理程序(情况){
开关(情况){
案例1:
显示:(“.name”);
显示:(“.address”);
打破
案例2:
禁用:(“.age”);
禁用:(“.email”);
打破
}
}
我认为这个代码更干净:
<script>
$("#id_add_select").change(function(){
if( $(this).val() == "2"))
handler(1)
else
handler(2)
});
function handler(situation){
switch (situation){
case 1:
display: (".name");
display: (".address");
break;
case 2:
disable: (".age");
disable: (".email");
break;
}
}
</script>
$(“#id#add_select”).change(函数(){
if($(this.val()=“2”))
处理程序(1)
其他的
处理程序(2)
});
函数处理程序(情况){
开关(情况){
案例1:
显示:(“.name”);
显示:(“.address”);
打破
案例2:
禁用:(“.age”);
禁用:(“.email”);
打破
}
}
一段优化的爱情:
$("#id_add_select").change(handler);
var handler = function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
};
或者这样:
$("#id_add_select").change(function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
});
$("#id_add_select").change(function () {
if (this.value === "1") {
display(".name");
display(".address");
} else {
disable(".age");
disable(".email");
}
});
或者这样:
$("#id_add_select").change(function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
});
$("#id_add_select").change(function () {
if (this.value === "1") {
display(".name");
display(".address");
} else {
disable(".age");
disable(".email");
}
});
另外,不要忘记,您需要一个显示和一个禁用方法(但我想您已经制作了它们,因为您的代码看起来像是这样)一段优化的爱情:
$("#id_add_select").change(handler);
var handler = function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
};
或者这样:
$("#id_add_select").change(function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
});
$("#id_add_select").change(function () {
if (this.value === "1") {
display(".name");
display(".address");
} else {
disable(".age");
disable(".email");
}
});
或者这样:
$("#id_add_select").change(function () {
switch (this.value) {
case 1:
display(".name");
display(".address");
break;
default:
disable(".age");
disable(".email");
break;
}
});
$("#id_add_select").change(function () {
if (this.value === "1") {
display(".name");
display(".address");
} else {
disable(".age");
disable(".email");
}
});
另外,不要忘记您需要一个显示和一个禁用方法(但我想您已经创建了它们,因为您的代码看起来像是这样的)找出某些事情无法工作的原因
显然,您打算检查所选元素的值是否为2
为此,您只需将语句分解为其基本部分
我们有一个函数调用$()
,通过传递一个参数执行:“\id\u add\u select”==“2”
我们注意到,函数的参数完全独立于实际调用,这对于所有函数调用都是如此。这意味着比较的结果将被传递。因为比较的两个操作数都是文本,我们可以自己计算表达式并用常量替换它:“\id\u add\u select”==“2”
显然不相等,因此结果将为false
我们得出结论,这与编写:$(false)
。从这里可以明显看出,此代码无法检查某个任意元素是否具有值2
除其他答案外,请注意
开关/机箱的工作原理
请注意,JavaScript的switch/case
语句已经失效
这意味着,一旦执行了一个case
子句,因为它的值与输入x
匹配,它将执行它下面的所有代码,直到它点击break;
语句退出开关/case
构造
在下面的示例中,执行printTo5Or8(1)
不会让它在console.log(1)
之后终止,相反,它将“跌入”到console.log(2);
直到中断;
语句
function printTo5Or8(x) {
switch(x){
case 1:
console.log(1);
case 2:
console.log(2);
case 3:
console.log(3);
case 4:
console.log(4);
case 5:
console.log(5);
break;
case 6:
console.log(6);
case 7:
console.log(7);
case 8:
console.log(8);
}
}
printTo5Or8(1); // Prints 1 2 3 4 5
printTo5Or8(3); // Prints 3 4 5
printTo5Or8(6); // Prints 6 7 8
printTo5Or8(7); // Prints 7 8
无效语法
switch/case
语句需要一个块:{statements;}
在switch(expression)
之后,您没有任何块
您可能是指显示(“.name”);
。目前,您的标签不起任何作用
冗余代码
函数处理程序(情况){
var-situation=situation;//找出某些事情无法工作的原因
显然,您打算检查所选元素的值是否为2
为此,您只需将语句分解为其基本部分
我们有一个函数调用$()
,通过传递一个参数执行:“\id\u add\u select”==“2”
我们注意到