为什么我的“IF”声明不起作用? (如果注释掉,则工作)

时间:2011-12-06 18:10:31

标签: 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(){
  $("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>

感谢您的快速反馈......我已将我的代码调整为以下内容,但仍然无效。

<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>

7 个答案:

答案 0 :(得分:3)

您不应将CAPS用于IFELSE !!!

答案 1 :(得分:1)

ifelse必须为小写。 Javascript区分大小写。

另外,我不认为这里的if条款正在做你想要的。您正在测试#hideID option[value='no']的真实性,它将始终评估为真。我想你真的想检查是否选择了'no'值。此外,您只是简单地切换可见性,因此jQuery的toggle方法在这里更合适。

请改为尝试:

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

答案 2 :(得分:0)

另外请确保您没有在大写字母中写下“if ... else”语句!

答案 3 :(得分:0)

Javascript区分大小写,您的ifelse应为小写。

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

答案 4 :(得分:0)

好的,我们试试吧......我修复了脚本的工作原理。你可以看到变化。

<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>

答案 5 :(得分:0)

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

演示:http://jsfiddle.net/ThinkingStiff/eqxCa/

脚本:

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

答案 6 :(得分:-2)

更改为值==='不'。 =用于赋值,==和===是比较。