为什么这个jQuery脚本不起作用?

jg1*_*309 0 jquery

<script type="text/javascript">
$(document).ready(function(){
  $("tr.reqDet").hide(); 

  $("[title='requestType']").change(function(){
    if ($("[title='requestType']").val()!=""){
        $("#reqDet").hide();
    } else {  
        $("#reqDet").show();  
    }
  });

</script>
Run Code Online (Sandbox Code Playgroud)

我无法让脚本中的if语句工作......

详细信息:我正在使用SharePoint,它会呈现一个带有属性title ="requestType"的下拉框.当requestType框没有设置为初始值,即""时,我想要出现一个带有"reqDet"类的控件.


无论如何,谢谢大家.这是适合我的解决方案:

<script type="text/javascript">
$(document).ready(function(){
  $("tr.reqDet").hide(); 

  $("select[title='requestType']").change(function(){
        $(".reqDet").toggle($(this).val()!== "");
  });
 });
</script>
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 5

更新的答案:既然你提到"带有类的元素reqDet",问题就是你使用的是id选择器(#reqDet)而不是类选择器.reqDet.

此外,除此之外,您还可以对代码进行一些改进:

  1. 使选择器更加明确,这样就不必检查页面中的每个元素
  2. 充分利用this回调内部,这样您就不必再次使用DOM了
  3. 使用toggle而不是hideshow,使你失去了if

所以你可以把它减少到这个:

$("select[title='requestType']").change(function(){ 
   $(".reqDet").toggle($(this).val() == ""); 
}); 
Run Code Online (Sandbox Code Playgroud)