Javascript 为什么';“我的”;如果;报表工作?(如果注释掉,则有效)

Javascript 为什么';“我的”;如果;报表工作?(如果注释掉,则有效),javascript,Javascript,所以我是jQuery新手,我不明白为什么我的IF语句不起作用,尽管当我注释出IF时代码可以工作。请帮帮我…谢谢 <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(document).ready(function()

所以我是jQuery新手,我不明白为什么我的IF语句不起作用,尽管当我注释出IF时代码可以工作。请帮帮我…谢谢

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("tr.anon").hide();
$("#hideID").change(function(){
//    IF ($("#hideID option[value='no']").text()){
      $("tr.anon").show();
//      alert($this).find("option:selected").text()+' clicked!');
//  }ELSE{
//    $("tr.anon").hide();
//  }
  });
});
</script>
</head>
<body>
<p>Would you like to remain anonymous?&nbsp;<select id="hideID">
<option value="yes">Yes</option>
<option value="no">No</option>
</select></p>
<table border="1px">
<tr class="anon">
<td>Enter your name:</td>
<td><input class="field2" type="text" /></td>
</tr>
</table>
</body>
</html>

$(文档).ready(函数(){
$(“tr.anon”).hide();
$(“#hideID”).change(函数(){
//IF($(“#hideID选项[value='no']”)text()){
$(“tr.anon”).show();
//警报($this).find($option:selected”).text()+'clicked!';
//}其他{
//$(“tr.anon”).hide();
//  }
});
});
你想保持匿名吗?
对
不

输入您的姓名:
感谢您的快速反馈。。。我已将代码调整为以下内容,但它仍然不起作用

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script><script type="text/javascript">
$(document).ready(function(){
  $("tr.anon").hide();
    $("#hideID").change(function(){
//      if ($("#hideID option[value='no']").text()){
        $("tr.anon").show();
//        alert(#hideID).find("option:selected").text()+' clicked!');
//    }else{
//      $("tr.anon").hide();
//    }
  });
});
</script>
</head>
<body>
<p>Would you like to remain anonymous?&nbsp;
<select  id="hideID">
<option value="yes">Yes</option>
<option value="no">No</option>
</select></p>
<table border="1px">
<tr class="anon">
<td>Enter your name:</td>
<td><input class="field2" type="text" /></td>
</tr>
</table>
</body>
</html>

$(文档).ready(函数(){
$(“tr.anon”).hide();
$(“#hideID”).change(函数(){
//if($(“#hideID选项[value='no']”)text()){
$(“tr.anon”).show();
//警报(#hideID).find(“选项:选中”).text()+“单击!”);
//}其他{
//$(“tr.anon”).hide();
//    }
});
});
你想保持匿名吗?
对
不

输入您的姓名:
更改为值=='no'是用于赋值,而==和===是比较。

如果
否则
,则不应使用大写

还要确保你没有用大写字母写“如果……其他”语句

Javascript区分大小写,您的
if
else
应该是小写的


另外,您正在检查
$(“#hideID option[value='no']”)text()
是否真实。如果文本不是空字符串,您将沿着真实路径前进,这是您的意图吗?

如果
否则
必须是小写。Javascript区分大小写

另外,我不认为这里的
if
子句是在做你想做的事情。您正在测试
#hideID选项[value='no']
的真实性,该选项的计算结果始终为true。我认为您确实想检查是否选择了“否”值。另外,您只需切换可见性,因此jQuery的方法在这里更合适

请尝试以下方法:

$('tr.anon').toggle( $("#hideID option:selected").val() === "no" );

好的,让我们试试这个。。。我把剧本修好了。你可以看到变化

<script type="text/javascript">
$(document).ready(function(){
$("tr.anon").hide();
$("#hideID").change(function(){
    if ($("#hideID").val()=="no"){
        $("tr.anon").show();
        alert($(this).find("option:selected").text() + ' clicked!');
    } else {
        $("tr.anon").hide();
                    $("#textFieldID").val("");
    }
  });
});
</script>

$(文档).ready(函数(){
$(“tr.anon”).hide();
$(“#hideID”).change(函数(){
if($(“#hideID”).val()=“否”){
$(“tr.anon”).show();
警报($(this).find(“选项:选中”).text()+“单击!”);
}否则{
$(“tr.anon”).hide();
$(“#textFieldID”).val(“”);
}
});
});

由于您只有两个值,因此可以使用:

演示:

脚本:

$( 'tr.anon' ).hide();
$( '#hideID' ).change( function() { $( 'tr.anon' ).toggle(); } );

JavaScript区分大小写-使用
if
else
等。学会欣赏浏览器报告的JavaScript错误。特别是,这是一个语法错误。
=
位于的内部,因此在本例中,单个
=
是合适的。为什么会接受此错误?这绝对是错误的——看起来迈克尔·盖茨的回答确实帮助了你;那个答案如果有效的话应该被接受。我想他是想把我的另一个答案记为正确的?下面是一些答案。你是正确的,那不是我想做的。我的目的是获取所选的值。oops。我想测试下拉列表的选定值是否为“否”,如果是,则显示文本框Adam,我不认为我在跟踪。。。测试条件在哪里?啊。我明白了。toggle()可以用来显示/隐藏控件,您不必知道控件处于什么状态就可以使用它。谢谢你的信息@jg100309正确,
.toggle()
接受布尔值并触发
.show()
.hide()
谢谢Michael,但警戒线实际上只是我在玩,所以我没有它就测试了你的建议,但我担心,当我更改dd的值时,文本框没有出现。糟糕,我输入了一个错误,忘记了包含val()。修复了它,它工作得非常好。谢谢大家的帮助!我知道,但写得不对。您正在执行alert($this.),它会提醒“$this”,这有两个问题:$this不存在,alert(代码在这里)。我添加了代码以在更改后清除文本框的值。