任何人都可以帮助我这个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>
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.基本一个,但我只是无法搞清楚。太感谢了。
答案 0 :(得分:3)
这是不对的:
if($("#id_add_select" == "2")){
你可能想做类似的事情:
if($(this).val() == 2) {
您可以使用代码进行更多优化,但这应该是正确的方向:
$("#id_add_select").change(function(){
if($(this).val() == 2){
handler(1)
} else {
handler(2)
}
});
IMO,使用带有函数的map对象比在你的情况下使用switch语句更干净。所以我可能会做类似的事情:
var actions = {
1: function() {
// first choice logic
},
2: function() {
// second choice logic
}
};
$("#id_add_select").change(function() {
actions[this.value]();
});
答案 1 :(得分:2)
if($("#id_add_select" == "2")){
=&gt; if($("#id_add_select").val() == "2"){
答案 2 :(得分:2)
首先,你没有得到任何价值:
<script>
$("#id_add_select").change(function(){
if($("#id_add_select").val()==2){
handler(1);
} else {
handler(2);
}
});
</script>
不要忘记在切换循环中的每个案例之后放置break语句。
答案 3 :(得分:1)
$("#id_add_select" == "2")
显然,您打算检查所选元素的值是否为2
。但是,无需知道jQuery如何工作,很明显这不起作用。
为此,您只需要将声明分解为其基本部分。
我们有一个函数调用$()
,我们通过传递一个参数来执行:"#id_add_select" == "2"
。
我们注意到,函数的参数完全独立于实际调用,对于所有函数调用都是如此。这意味着,比较的结果将被传递。因为比较的两个操作数都是文字,我们可以自己评估表达式并用常量替换它:"#id_add_select" == "2"
显然不相等,因此结果将是false
。
我们得出结论,它与写作$(false)
相同。从这里开始,很明显这段代码无法检查某个任意元素是否具有值2
。
除了其他答案,请注意
请注意,JavaScript的switch/case
语句具有直接行为。
这意味着,一旦执行了case
子句,因为它的值与输入x
匹配,它将执行它下面的所有代码,直到它到达break;
语句退出{ {1}}构建。
在下面的示例中,执行switch/case
不会在printTo5Or8(1)
之后终止,而是会在console.log(1)
语句之前“落到”console.log(2);
! / p>
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; }
之后关注!你没有。
switch(expression)
你可能意味着display: (".name")
display: (".address")
。目前,您的标签无效。
display(".name");
形式参数列表function handler(situation){
var situation = situation; // <-- Remove
已经声明了一个局部变量(situation)
。没有必要申报。
我建议你花些精力学习JavaScript作为一种语言。了解JavaScript的工作原理将有助于您推断出您的代码并规范无法使用的“不可能”的代码。如果没有很好地掌握编程语言或JavaScript在这种情况下的工作方式,那么编程就会把一些神奇的咒语混合在一起,这些咒语偶尔会发生在你想要的事情上,但往往会出错。
编程是一门精确的科学,而不是猜测和运气。
答案 4 :(得分:0)
我认为这段代码更干净:
<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>
答案 5 :(得分:0)
一段优化的爱情:
$("#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");
}
});
也不要忘记你需要一个显示器和一个禁用方法(但我想你已经制作了它们,因为你的代码看起来很像)
答案 6 :(得分:0)
<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>