[英]how to write an if else statement in javascript
任何人都可以在其他情况下帮助我....
编码
<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>
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。基本情况1,但我只是想不通。 太感谢了。
这是不对的:
if($("#id_add_select" == "2")){
您可能想要执行以下操作:
if($(this).val() == 2) {
您可以使用代码进行更多优化,但这应该朝着正确的方向发展:
$("#id_add_select").change(function(){
if($(this).val() == 2){
handler(1)
} else {
handler(2)
}
});
IMO在您的情况下使用带有功能的映射对象比使用switch语句更干净。 所以我可能会做类似的事情:
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
演示: http : //jsfiddle.net/PurjS/
if($("#id_add_select" == "2")){
=> if($("#id_add_select").val() == "2"){
首先,您没有任何价值:
<script>
$("#id_add_select").change(function(){
if($("#id_add_select").val()==2){
handler(1);
} else {
handler(2);
}
});
</script>
不要忘记在每种情况下在switch循环后放置break语句。
$("#id_add_select" == "2")
显然,您打算检查所选元素的值是否为2
。 但是,无需知道jQuery是如何工作的,显然这是行不通的。
为此,您只需要将语句分解为其基本部分。
我们有一个函数调用$()
,它通过传递一个参数来执行: "#id_add_select" == "2"
。
我们注意到,该函数的参数完全独立于实际调用,对于所有函数调用都是如此。 这意味着将通过比较结果 。 因为比较的两个操作数都是文字,所以我们可以自己对表达式求值并用一个常量替换: "#id_add_select" == "2"
显然不相等,因此结果将为false
。
我们得出结论,这与编写相同: $(false)
。 从这里开始,很明显,此代码无法检查某个任意元素的值是否为2
。
除了其他答案外,请注意
请注意,JavaScript的switch/case
语句具有穿透行为。
这意味着,一旦执行case
子句,因为它的值与输入x
匹配,它将执行它下面的所有代码,直到遇到break;
为止break;
退出switch/case
构造的语句。
在下面的示例中,执行printTo5Or8(1)
不会使其在console.log(1)
之后终止,而是“ printTo5Or8(1)
”到console.log(2);
直到break;
声明!
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; }
{ statements; }
后跟随switch(expression)
! 你什么都没有
display: (".name")
display: (".address")
您可能是指display(".name");
。 目前,您的标签不起作用。
function handler(situation){
var situation = situation; // <-- Remove
形式参数列表(situation)
已经声明了局部变量situation
。 没有必要声明它。
我建议您投入一些精力来学习JavaScript作为一种语言。 了解JavaScript的工作方式将帮助您推理代码,并裁定永远无法工作的“不可能”代码。 没有很好地掌握编程语言或在这种情况下JavaScript是如何工作的,编程就好像将一些魔咒混在了一起,这些魔咒有时恰好可以实现您想要的功能,但是却经常出错。
编程是一门精确的科学,而不是猜测和运气。
我认为这段代码更干净:
<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(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");
}
});
也不要忘记您需要显示和禁用方法(但是我想您已经制作了它们,因为您的代码看起来像您一样)
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
$("#id_add_select").change(function(){
if($(this).val() == "2")
handler(1)
else
handler(2)
});
});
function handler(situation)
{
switch (situation){
case 1:
alert(situation);
break;
case 2:
alert(situation);
break;
}
}
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<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>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.