Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javascript编写if-else语句_Javascript_Django Templates - Fatal编程技术网

如何用javascript编写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

有谁能帮我做这个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 (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”

我们注意到